MCP call
POST/v1/mcp/call
| Name | Type | Notes |
|---|---|---|
arguments | any | |
namerequired | string |
200 response · McpCallResponse
| Name | Type | Notes |
|---|---|---|
namerequired | string | |
resultrequired | any |
75 endpoints, read from the running API's own OpenAPI document. For the walkthrough, keys and MCP setup, start with the guide.
https://aggre.orbbit.aix-aggre-api-key: aggre_sk_… or Authorization: Bearer aggre_sk_…{ "error": "…" } with the status code. A refusal names what was refused and why.Any key that can read the datasets.
Every MCP tool, callable as plain JSON. List the tools, then call one by name.
POST/v1/mcp/call
| Name | Type | Notes |
|---|---|---|
arguments | any | |
namerequired | string |
McpCallResponse| Name | Type | Notes |
|---|---|---|
namerequired | string | |
resultrequired | any |
GET/v1/mcp/tools
McpToolResponse| Name | Type | Notes |
|---|---|---|
toolsrequired | any[] |
Search across the datasets a key can read, read one record, or export in bulk.
POST/v1/export
| Name | Type | Notes |
|---|---|---|
dataset_idrequired | uuid | |
format | null | DataFormat | |
limit | integer | null |
ExportResponse| Name | Type | Notes |
|---|---|---|
content | string | null | |
formatrequired | DataFormat | |
recordsrequired | Record[] | |
totalrequired | integer |
GET/v1/records/{id}
| Name | In | Type | Notes |
|---|---|---|---|
idrequired | path | uuid | Record ID |
Record| Name | Type | Notes |
|---|---|---|
created_atrequired | string | |
datarequired | any | |
data_hash | string | null | |
dataset_idrequired | uuid | |
external_id | string | null | |
idrequired | uuid | |
source_id | uuid | null | |
versionrequired | integer |
POST/v1/search
| Name | Type | Notes |
|---|---|---|
dataset_id | uuid | null | |
limit | integer | null | |
queryrequired | string |
SearchResponse| Name | Type | Notes |
|---|---|---|
resultsrequired | Record[] | |
totalrequired | integer |
The platform datasets your plan lets you select, and your organization's selections.
GET/v1/catalog
| Name | In | Type | Notes |
|---|---|---|---|
org_id | query | uuid | Staff only: another organization's view |
CatalogResponse| Name | Type | Notes |
|---|---|---|
categoriesrequired | CatalogCategory[] | The platform's categories (a flat list; nest by `parent_id`), each with the datasets filed directly under it. |
limitrequired | CatalogLimit | |
org_idrequired | uuid | |
otherrequired | CatalogDataset[] | Catalog datasets in no category, plus the org's own datasets. |
tierrequired | Tier | |
usedrequired | integer | Selections counted against `limit.total` right now. |
POST/v1/catalog/selections
| Name | Type | Notes |
|---|---|---|
dataset_idrequired | uuid | |
org_id | uuid | null | Staff only: select on behalf of another organization. |
OrgDatasetSelection| Name | Type | Notes |
|---|---|---|
created_atrequired | string | |
dataset_idrequired | uuid | |
org_idrequired | uuid |
DELETE/v1/catalog/selections/{dataset_id}
| Name | In | Type | Notes |
|---|---|---|---|
dataset_idrequired | path | uuid | Dataset ID |
org_id | query | uuid | Staff only: another organization |
Datasets your key can read: their records, versions and counts.
GET/v1/datasets
PaginatedDataset| Name | Type | Notes |
|---|---|---|
itemsrequired | Dataset[] | |
totalrequired | integer |
POST/v1/datasets
| Name | Type | Notes |
|---|---|---|
category | string | null | |
description | string | null | |
governance | any | |
namerequired | string | |
org_id | uuid | null | |
schema | any | |
slugrequired | string | |
tags | string[] | null |
Dataset| Name | Type | Notes |
|---|---|---|
category | string | null | |
created_atrequired | string | |
description | string | null | |
governancerequired | any | |
idrequired | uuid | |
namerequired | string | |
org_idrequired | uuid | |
schemarequired | any | |
slugrequired | string | |
statusrequired | DatasetStatus | |
tagsrequired | string[] | |
updated_atrequired | string | |
versionrequired | integer |
GET/v1/datasets/stats
GET/v1/datasets/{id}
| Name | In | Type | Notes |
|---|---|---|---|
idrequired | path | uuid | Dataset ID |
Dataset| Name | Type | Notes |
|---|---|---|
category | string | null | |
created_atrequired | string | |
description | string | null | |
governancerequired | any | |
idrequired | uuid | |
namerequired | string | |
org_idrequired | uuid | |
schemarequired | any | |
slugrequired | string | |
statusrequired | DatasetStatus | |
tagsrequired | string[] | |
updated_atrequired | string | |
versionrequired | integer |
PATCH/v1/datasets/{id}
| Name | In | Type | Notes |
|---|---|---|---|
idrequired | path | uuid | Dataset ID |
| Name | Type | Notes |
|---|---|---|
category | string | null | |
description | string | null | |
governance | any | |
name | string | null | |
schema | any | |
status | null | DatasetStatus | |
tags | string[] | null |
Dataset| Name | Type | Notes |
|---|---|---|
category | string | null | |
created_atrequired | string | |
description | string | null | |
governancerequired | any | |
idrequired | uuid | |
namerequired | string | |
org_idrequired | uuid | |
schemarequired | any | |
slugrequired | string | |
statusrequired | DatasetStatus | |
tagsrequired | string[] | |
updated_atrequired | string | |
versionrequired | integer |
GET/v1/datasets/{id}/records
| Name | In | Type | Notes |
|---|---|---|---|
idrequired | path | uuid | Dataset ID |
limit | query | integer | Page size, 1-500 (omit both limit and offset for the full dump) |
offset | query | integer | Page offset |
PaginatedRecord| Name | Type | Notes |
|---|---|---|
itemsrequired | Record[] | |
totalrequired | integer |
GET/v1/datasets/{id}/records/count
| Name | In | Type | Notes |
|---|---|---|---|
idrequired | path | uuid | Dataset ID |
RecordCountResponse| Name | Type | Notes |
|---|---|---|
countrequired | integer |
POST/v1/datasets/{id}/republish
| Name | In | Type | Notes |
|---|---|---|---|
idrequired | path | uuid | Dataset ID |
RepublishResponse| Name | Type | Notes |
|---|---|---|
datasetrequired | Dataset | |
jobrequired | Job | |
recordsrequired | integer | |
versionrequired | DatasetVersion |
GET/v1/datasets/{id}/versions
| Name | In | Type | Notes |
|---|---|---|---|
idrequired | path | uuid | Dataset ID |
PaginatedDatasetVersion| Name | Type | Notes |
|---|---|---|
itemsrequired | DatasetVersion[] | |
totalrequired | integer |
Owners and admins of an organization.
Create, list and revoke keys. A key never carries more than the person who made it.
GET/v1/api-keys
| Name | In | Type | Notes |
|---|---|---|---|
org_id | query | uuid | Filter to one organization (staff may name any) |
POST/v1/api-keys
| Name | Type | Notes |
|---|---|---|
dataset_ids | uuid[] | null | Datasets the key may read. Omit for every dataset the org can read; an empty list is refused rather than read as "nothing". |
namerequired | string | |
org_id | uuid | null | |
scopes | Permission[] | null |
ApiKeyCreated| Name | Type | Notes |
|---|---|---|
keyrequired | ApiKey | |
secret_oncerequired | string |
POST/v1/api-keys/{id}/revoke
| Name | In | Type | Notes |
|---|---|---|---|
idrequired | path | uuid | API key ID |
ApiKey| Name | Type | Notes |
|---|---|---|
created_atrequired | string | |
dataset_ids | uuid[] | null | The datasets this key may read. `None` means every dataset its org can read; a list narrows the key further, never widens the org's access. |
expires_at | string | null | |
idrequired | uuid | |
namerequired | string | |
org_idrequired | uuid | |
prefixrequired | string | |
revoked_at | string | null | |
scopesrequired | Permission[] | |
secret_hashrequired | string |
Metered calls, for the organization's monthly total.
GET/v1/usage
The plan summary. Changing plans and credits is staff-only until payments go live.
POST/v1/billing/credits
| Name | Type | Notes |
|---|---|---|
amountrequired | integer | |
metadata | any | |
org_id | uuid | null | The org to credit (staff may name any); defaults to the caller's. |
reasonrequired | string |
CreditLedgerEntry| Name | Type | Notes |
|---|---|---|
amountrequired | integer | |
created_atrequired | string | |
idrequired | uuid | |
metadatarequired | any | |
org_idrequired | uuid | |
reasonrequired | string |
POST/v1/billing/invoices
| Name | Type | Notes |
|---|---|---|
amount_duerequired | integer | |
currencyrequired | string | |
hosted_invoice_url | string | null | |
period_end | string | null | |
period_start | string | null | |
provider | string | null | |
provider_invoice_id | string | null | |
statusrequired | string |
InvoiceRecord| Name | Type | Notes |
|---|---|---|
amount_duerequired | integer | |
created_atrequired | string | |
currencyrequired | string | |
hosted_invoice_url | string | null | |
idrequired | uuid | |
org_idrequired | uuid | |
period_end | string | null | |
period_start | string | null | |
providerrequired | string | |
provider_invoice_id | string | null | |
statusrequired | string |
POST/v1/billing/stripe/webhook
| Name | Type | Notes |
|---|---|---|
datarequired | any | |
event_typerequired | string | |
org_id | uuid | null |
StripeWebhookResponse| Name | Type | Notes |
|---|---|---|
acceptedrequired | boolean | |
actionrequired | string | |
invoice | null | InvoiceRecord | |
subscription | null | BillingSubscription |
POST/v1/billing/subscription
| Name | Type | Notes |
|---|---|---|
current_period_end | string | null | |
current_period_start | string | null | |
org_id | uuid | null | |
provider | string | null | |
provider_subscription_id | string | null | |
statusrequired | string | |
tierrequired | Tier |
BillingSubscription| Name | Type | Notes |
|---|---|---|
created_atrequired | string | |
current_period_end | string | null | |
current_period_start | string | null | |
idrequired | uuid | |
org_idrequired | uuid | |
providerrequired | string | |
provider_subscription_id | string | null | |
statusrequired | string | |
tierrequired | Tier | |
updated_atrequired | string |
GET/v1/billing/summary
| Name | In | Type | Notes |
|---|---|---|---|
org_id | query | uuid | Staff only: another organization's summary |
BillingSummary| Name | Type | Notes |
|---|---|---|
addon_dataset_slots | integer | |
catalog_selected | integer | Catalog selections currently counted against the plan's limit. |
credit_balancerequired | integer | |
entitlementsrequired | Entitlements | |
invoicesrequired | InvoiceRecord[] | |
org_idrequired | uuid | |
period | string | The billing period `request_usage` covers, `YYYY-MM` (UTC). |
request_usagerequired | integer | Data-plane requests the org made in `period` (all keys and SSO sessions together) -- the number `entitlements.monthly_requests` caps. |
subscription | null | BillingSubscription | |
tierrequired | Tier |
POST/v1/x402/quote
| Name | Type | Notes |
|---|---|---|
routerequired | string | |
units | integer | null |
X402Quote| Name | Type | Notes |
|---|---|---|
amountrequired | integer | |
currencyrequired | string | |
expires_atrequired | string | |
idrequired | uuid | |
payment_headerrequired | string | |
routerequired | string | |
unitsrequired | integer |
POST/v1/x402/settle
| Name | Type | Notes |
|---|---|---|
amountrequired | integer | |
currencyrequired | string | |
proof | string | null | |
quote_idrequired | uuid | |
routerequired | string |
X402SettleResponse| Name | Type | Notes |
|---|---|---|
acceptedrequired | boolean | |
ledger_entryrequired | CreditLedgerEntry |
Keys with write access to their organization's datasets.
Where a dataset's records come from: preview a source, then run it.
GET/v1/sources
| Name | In | Type | Notes |
|---|---|---|---|
dataset_id | query | uuid | Optional dataset filter |
PaginatedSource| Name | Type | Notes |
|---|---|---|
itemsrequired | Source[] | |
totalrequired | integer |
POST/v1/sources
| Name | Type | Notes |
|---|---|---|
config | any | |
dataset_idrequired | uuid | |
kindrequired | SourceKind | |
namerequired | string | |
org_id | uuid | null | |
schedule_interval_minutes | integer | null | |
slugrequired | string |
Source| Name | Type | Notes |
|---|---|---|
configrequired | any | |
created_atrequired | string | |
dataset_idrequired | uuid | |
enabledrequired | boolean | |
idrequired | uuid | |
kindrequired | SourceKind | |
namerequired | string | |
org_idrequired | uuid | |
schedule_interval_minutes | integer | null | How often the scheduler should automatically re-run this source, in minutes. `None` means manual-only (the pre-existing behavior). |
slugrequired | string | |
updated_atrequired | string |
GET/v1/sources/{id}
| Name | In | Type | Notes |
|---|---|---|---|
idrequired | path | uuid | Source ID |
Source| Name | Type | Notes |
|---|---|---|
configrequired | any | |
created_atrequired | string | |
dataset_idrequired | uuid | |
enabledrequired | boolean | |
idrequired | uuid | |
kindrequired | SourceKind | |
namerequired | string | |
org_idrequired | uuid | |
schedule_interval_minutes | integer | null | How often the scheduler should automatically re-run this source, in minutes. `None` means manual-only (the pre-existing behavior). |
slugrequired | string | |
updated_atrequired | string |
PATCH/v1/sources/{id}
| Name | In | Type | Notes |
|---|---|---|---|
idrequired | path | uuid | Source ID |
| Name | Type | Notes |
|---|---|---|
config | any | |
enabled | boolean | null | |
name | string | null | |
schedule_interval_minutes | integer | null | Set to change the schedule; `Some(0)` (or any non-positive value) clears it back to manual-only. `None` leaves it unchanged. |
Source| Name | Type | Notes |
|---|---|---|
configrequired | any | |
created_atrequired | string | |
dataset_idrequired | uuid | |
enabledrequired | boolean | |
idrequired | uuid | |
kindrequired | SourceKind | |
namerequired | string | |
org_idrequired | uuid | |
schedule_interval_minutes | integer | null | How often the scheduler should automatically re-run this source, in minutes. `None` means manual-only (the pre-existing behavior). |
slugrequired | string | |
updated_atrequired | string |
POST/v1/sources/{id}/enqueue
| Name | In | Type | Notes |
|---|---|---|---|
idrequired | path | uuid | Source ID |
Job| Name | Type | Notes |
|---|---|---|
attemptsrequired | integer | |
created_atrequired | string | |
dataset_id | uuid | null | |
error | string | null | |
idrequired | uuid | |
kindrequired | JobKind | |
max_attemptsrequired | integer | |
source_id | uuid | null | |
statusrequired | JobStatus | |
updated_atrequired | string |
POST/v1/sources/{id}/ingest
| Name | In | Type | Notes |
|---|---|---|---|
idrequired | path | uuid | Source ID |
| Name | Type | Notes |
|---|---|---|
cursor | string | null | |
format | null | DataFormat | |
job_id | uuid | null | |
recordsrequired | any[] |
IngestResponse| Name | Type | Notes |
|---|---|---|
acceptedrequired | integer | |
cursor | string | null | |
errorsrequired | string[] | |
jobrequired | Job | |
raw_archiverequired | RawArchive | |
recordsrequired | Record[] | |
rejectedrequired | integer |
POST/v1/sources/{id}/preview
| Name | In | Type | Notes |
|---|---|---|---|
idrequired | path | uuid | Source ID |
limit | query | integer | Preview record limit, capped at 50 |
SourcePreviewResponse| Name | Type | Notes |
|---|---|---|
acceptedrequired | integer | |
dataset_idrequired | uuid | |
errorsrequired | string[] | |
formatrequired | string | |
recordsrequired | any[] | |
rejectedrequired | integer | |
returnedrequired | integer | |
source_idrequired | uuid | |
totalrequired | integer |
POST/v1/sources/{id}/run
| Name | In | Type | Notes |
|---|---|---|---|
idrequired | path | uuid | Source ID |
Job| Name | Type | Notes |
|---|---|---|
attemptsrequired | integer | |
created_atrequired | string | |
dataset_id | uuid | null | |
error | string | null | |
idrequired | uuid | |
kindrequired | JobKind | |
max_attemptsrequired | integer | |
source_id | uuid | null | |
statusrequired | JobStatus | |
updated_atrequired | string |
Pipeline runs and the errors they logged.
GET/v1/error-logs
| Name | In | Type | Notes |
|---|---|---|---|
job_id | query | uuid | Optional job filter |
source_id | query | uuid | Optional source filter |
dataset_id | query | uuid | Optional dataset filter |
GET/v1/jobs
POST/v1/jobs
| Name | Type | Notes |
|---|---|---|
dataset_id | uuid | null | |
kindrequired | JobKind | |
max_attempts | integer | null | |
source_id | uuid | null |
Job| Name | Type | Notes |
|---|---|---|
attemptsrequired | integer | |
created_atrequired | string | |
dataset_id | uuid | null | |
error | string | null | |
idrequired | uuid | |
kindrequired | JobKind | |
max_attemptsrequired | integer | |
source_id | uuid | null | |
statusrequired | JobStatus | |
updated_atrequired | string |
GET/v1/jobs/{id}
| Name | In | Type | Notes |
|---|---|---|---|
idrequired | path | uuid | Job ID |
Job| Name | Type | Notes |
|---|---|---|
attemptsrequired | integer | |
created_atrequired | string | |
dataset_id | uuid | null | |
error | string | null | |
idrequired | uuid | |
kindrequired | JobKind | |
max_attemptsrequired | integer | |
source_id | uuid | null | |
statusrequired | JobStatus | |
updated_atrequired | string |
POST/v1/jobs/{id}/claim
| Name | In | Type | Notes |
|---|---|---|---|
idrequired | path | uuid | Job ID |
Job| Name | Type | Notes |
|---|---|---|
attemptsrequired | integer | |
created_atrequired | string | |
dataset_id | uuid | null | |
error | string | null | |
idrequired | uuid | |
kindrequired | JobKind | |
max_attemptsrequired | integer | |
source_id | uuid | null | |
statusrequired | JobStatus | |
updated_atrequired | string |
POST/v1/jobs/{id}/run
| Name | In | Type | Notes |
|---|---|---|---|
idrequired | path | uuid | Job ID |
Job| Name | Type | Notes |
|---|---|---|
attemptsrequired | integer | |
created_atrequired | string | |
dataset_id | uuid | null | |
error | string | null | |
idrequired | uuid | |
kindrequired | JobKind | |
max_attemptsrequired | integer | |
source_id | uuid | null | |
statusrequired | JobStatus | |
updated_atrequired | string |
The untouched payloads every run keeps.
GET/v1/raw-archives
PaginatedRawArchive| Name | Type | Notes |
|---|---|---|
itemsrequired | RawArchive[] | |
totalrequired | integer |
Only Orbbit's own staff organization.
How catalog datasets are grouped.
GET/v1/categories
PaginatedCategory| Name | Type | Notes |
|---|---|---|
itemsrequired | Category[] | |
totalrequired | integer |
POST/v1/categories
| Name | Type | Notes |
|---|---|---|
description | string | null | |
namerequired | string | |
org_id | uuid | null | |
parent_id | uuid | null | |
slugrequired | string |
Category| Name | Type | Notes |
|---|---|---|
created_atrequired | string | |
description | string | null | |
idrequired | uuid | |
namerequired | string | |
org_idrequired | uuid | |
parent_id | uuid | null | |
slugrequired | string | |
updated_atrequired | string |
GET/v1/categories/{id}
| Name | In | Type | Notes |
|---|---|---|---|
idrequired | path | uuid | Category ID |
Category| Name | Type | Notes |
|---|---|---|
created_atrequired | string | |
description | string | null | |
idrequired | uuid | |
namerequired | string | |
org_idrequired | uuid | |
parent_id | uuid | null | |
slugrequired | string | |
updated_atrequired | string |
PATCH/v1/categories/{id}
| Name | In | Type | Notes |
|---|---|---|---|
idrequired | path | uuid | Category ID |
| Name | Type | Notes |
|---|---|---|
clear_parent | boolean | Move the category to the top level, clearing parent_id. Distinct from parent_id being absent (leave the parent unchanged) -- ordinary JSON can't tell "omitted" from "explicitly null" without extra deserializer plumbing, so this is a plain flag instead. |
description | string | null | |
name | string | null | |
parent_id | uuid | null |
Category| Name | Type | Notes |
|---|---|---|
created_atrequired | string | |
description | string | null | |
idrequired | uuid | |
namerequired | string | |
org_idrequired | uuid | |
parent_id | uuid | null | |
slugrequired | string | |
updated_atrequired | string |
DELETE/v1/categories/{id}
| Name | In | Type | Notes |
|---|---|---|---|
idrequired | path | uuid | Category ID |
GET/v1/categories/{id}/datasets
| Name | In | Type | Notes |
|---|---|---|---|
idrequired | path | uuid | Category ID |
PaginatedDataset| Name | Type | Notes |
|---|---|---|
itemsrequired | Dataset[] | |
totalrequired | integer |
POST/v1/categories/{id}/datasets
| Name | In | Type | Notes |
|---|---|---|---|
idrequired | path | uuid | Category ID |
| Name | Type | Notes |
|---|---|---|
dataset_idrequired | uuid |
CategoryDataset| Name | Type | Notes |
|---|---|---|
added_atrequired | string | |
category_idrequired | uuid | |
dataset_idrequired | uuid |
DELETE/v1/categories/{id}/datasets/{dataset_id}
| Name | In | Type | Notes |
|---|---|---|---|
idrequired | path | uuid | Category ID |
dataset_idrequired | path | uuid | Dataset ID |
Category access given to an organization outside its plan.
GET/v1/subscriptions
| Name | In | Type | Notes |
|---|---|---|---|
org_id | query | uuid | Filter to one organization's subscriptions |
POST/v1/subscriptions
| Name | Type | Notes |
|---|---|---|
category_idrequired | uuid | |
org_idrequired | uuid |
Subscription| Name | Type | Notes |
|---|---|---|
category_idrequired | uuid | |
created_atrequired | string | |
org_idrequired | uuid |
DELETE/v1/subscriptions/{org_id}/{category_id}
| Name | In | Type | Notes |
|---|---|---|---|
org_idrequired | path | uuid | Organization ID |
category_idrequired | path | uuid | Category ID |
Every organization, user and key, and platform status.
GET/v1/admin/orgs
| Name | In | Type | Notes |
|---|---|---|---|
q | query | string | Matches slug, name or a member's email (case-insensitive) |
limit | query | integer | Page size, 1-200 (default 50) |
offset | query | integer | Page offset |
AdminOrgList| Name | Type | Notes |
|---|---|---|
itemsrequired | AdminOrgRow[] | |
totalrequired | integer |
GET/v1/admin/orgs/{id}
| Name | In | Type | Notes |
|---|---|---|---|
idrequired | path | uuid | Organization ID |
AdminOrgDetail| Name | Type | Notes |
|---|---|---|
api_keysrequired | ApiKey[] | |
billingrequired | BillingSummary | |
grantsrequired | AdminGrant[] | |
membersrequired | AdminMember[] | |
orgrequired | Organization | |
selectionsrequired | AdminSelection[] | |
usagerequired | AdminUsage |
PATCH/v1/admin/orgs/{id}
| Name | In | Type | Notes |
|---|---|---|---|
idrequired | path | uuid | Organization ID |
| Name | Type | Notes |
|---|---|---|
addon_dataset_slots | integer | null | |
name | string | null | |
tier | null | Tier |
Organization| Name | Type | Notes |
|---|---|---|
addon_dataset_slots | integer | Catalog datasets this org may select on top of its tier's `catalog_datasets`. Staff-set for now; a paid add-on later. |
created_atrequired | string | |
idrequired | uuid | |
kindrequired | OrganizationKind | GitHub-style account model: every Orbbit SSO login gets a Personal org (auto-provisioned, sole Owner) so customers never need to be granted membership anywhere just to use Aggre. Team orgs are for multi-member organizations -- including Orbbit's own internal staff org -- and are created explicitly. Enterprise is a billing `Tier` on a Team org, not a separate kind, since org shape and billing tier are independent axes. |
namerequired | string | |
slugrequired | string | |
tierrequired | Tier |
POST/v1/admin/orgs/{id}/members
| Name | In | Type | Notes |
|---|---|---|---|
idrequired | path | uuid | Organization ID |
| Name | Type | Notes |
|---|---|---|
emailrequired | string | |
rolerequired | Role |
AdminMember| Name | Type | Notes |
|---|---|---|
created_atrequired | string | When the membership (not the user) was created. |
emailrequired | string | |
namerequired | string | |
rolerequired | Role | |
user_idrequired | uuid |
GET/v1/admin/status
AdminStatusResponse| Name | Type | Notes |
|---|---|---|
audit_logsrequired | integer | |
auth_requiredrequired | boolean | |
credit_ledger_entriesrequired | integer | |
database_enabledrequired | boolean | |
dataset_versionsrequired | integer | |
datasetsrequired | integer | |
error_logsrequired | integer | |
event_backendrequired | string | |
event_targetrequired | string | |
invoicesrequired | integer | |
job_queue_backendrequired | string | |
job_queue_targetrequired | string | |
jobsrequired | integer | |
organization_membersrequired | integer | |
organizationsrequired | integer | |
raw_archive_backendrequired | string | |
raw_archive_locationrequired | string | |
raw_archive_rootrequired | string | |
raw_archivesrequired | integer | |
request_quota_per_keyrequired | integer | |
sourcesrequired | integer | |
subscriptionsrequired | integer | |
usage_eventsrequired | integer | |
usersrequired | integer |
GET/v1/admin/users
| Name | In | Type | Notes |
|---|---|---|---|
q | query | string | Matches email or name (case-insensitive) |
limit | query | integer | Page size, 1-200 (default 50) |
offset | query | integer | Page offset |
AdminUserList| Name | Type | Notes |
|---|---|---|
itemsrequired | AdminUserRow[] | |
totalrequired | integer |
GET/v1/audit-logs
| Name | In | Type | Notes |
|---|---|---|---|
limit | query | integer | Page size, 1-500 |
offset | query | integer | Page offset |
PaginatedAuditLog| Name | Type | Notes |
|---|---|---|
itemsrequired | AuditLog[] | |
totalrequired | integer |
GET/v1/legal-api/judicial-credentials
JudicialCredentialsStatus| Name | Type | Notes |
|---|---|---|
configuredrequired | boolean | |
sourcerequired | string | |
username | string | null |
PUT/v1/legal-api/judicial-credentials
| Name | Type | Notes |
|---|---|---|
passwordrequired | string | |
usernamerequired | string |
DELETE/v1/legal-api/judicial-credentials
GET/v1/legal-api/twelvedata-key
TwelveDataKeyStatus| Name | Type | Notes |
|---|---|---|
configuredrequired | boolean | |
hint | string | null | |
sourcerequired | string |
PUT/v1/legal-api/twelvedata-key
| Name | Type | Notes |
|---|---|---|
keyrequired | string |
DELETE/v1/legal-api/twelvedata-key
GET/v1/orgs
POST/v1/orgs
| Name | Type | Notes |
|---|---|---|
kind | null | OrganizationKind | |
namerequired | string | |
slugrequired | string | |
tier | null | Tier |
Organization| Name | Type | Notes |
|---|---|---|
addon_dataset_slots | integer | Catalog datasets this org may select on top of its tier's `catalog_datasets`. Staff-set for now; a paid add-on later. |
created_atrequired | string | |
idrequired | uuid | |
kindrequired | OrganizationKind | GitHub-style account model: every Orbbit SSO login gets a Personal org (auto-provisioned, sole Owner) so customers never need to be granted membership anywhere just to use Aggre. Team orgs are for multi-member organizations -- including Orbbit's own internal staff org -- and are created explicitly. Enterprise is a billing `Tier` on a Team org, not a separate kind, since org shape and billing tier are independent axes. |
namerequired | string | |
slugrequired | string | |
tierrequired | Tier |
GET/v1/orgs/{id}/members
| Name | In | Type | Notes |
|---|---|---|---|
idrequired | path | uuid | Organization ID |
POST/v1/orgs/{id}/members
| Name | In | Type | Notes |
|---|---|---|---|
idrequired | path | uuid | Organization ID |
| Name | Type | Notes |
|---|---|---|
rolerequired | Role | |
user_idrequired | uuid |
OrganizationMember| Name | Type | Notes |
|---|---|---|
created_atrequired | string | |
org_idrequired | uuid | |
rolerequired | Role | |
user_idrequired | uuid |
GET/v1/users
POST/v1/users
| Name | Type | Notes |
|---|---|---|
emailrequired | string | |
namerequired | string |
User| Name | Type | Notes |
|---|---|---|
created_atrequired | string | |
emailrequired | string | |
idrequired | uuid | |
namerequired | string |
Liveness and readiness, no key needed.
GET/health
HealthResponse| Name | Type | Notes |
|---|---|---|
servicerequired | string | |
statusrequired | string |
GET/ready
ReadyResponse| Name | Type | Notes |
|---|---|---|
databaserequired | string | |
rerankerrequired | string | |
servicerequired | string | |
statusrequired | string |