curl --request GET \
--url https://api.usenexio.com/connections/{id}/tables \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.usenexio.com/connections/{id}/tables"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.usenexio.com/connections/{id}/tables', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"data": [
{
"columns": [
{
"class": "<string>",
"column": "<string>",
"feeds": [
"<string>"
],
"state": "served"
}
],
"object": "<string>",
"owner": "none",
"requirement": "<string>",
"system": "ams360",
"table": "<string>",
"filter": "<string>",
"filter_required": true
}
],
"page": {
"cursor": "<string>",
"limit": 123,
"next": "<string>",
"prev": "<string>",
"offset": 123
},
"request_id": "<string>",
"source": {
"actor": {
"impersonation_kind": "act_as",
"impersonator": "<string>",
"member": "<string>"
},
"connection": "<string>",
"family": "<string>",
"freshness": "<string>",
"id": "<string>",
"kind": "warehouse",
"origin": "default",
"snapshot_at": "2023-11-07T05:31:56Z",
"subject": {
"scope": "<string>",
"selection": [
"<string>"
],
"selection_kind": "<string>",
"selection_source": "<string>",
"member": {
"display_name": "<string>",
"id": "<string>",
"scope": "<string>"
}
},
"system": "warehouse",
"elapsed_ms": 123,
"reason": {
"kind": "<string>",
"note": "<string>",
"ref": "<string>"
},
"snapshot_id": "<string>",
"stale_since": "2023-11-07T05:31:56Z"
},
"unreachable": [
{
"part": "<string>",
"reason": "<string>",
"detail": "<string>",
"ref": "<string>"
}
],
"warnings": [
{
"code": "<string>",
"detail": "<string>"
}
],
"facets": {},
"total": {
"exact": true,
"value": 123
}
}{
"code": "INVALID_ARGUMENT",
"request_id": "<string>",
"status": 123,
"title": "<string>",
"type": "<string>",
"detail": "<string>",
"details": "<unknown>",
"errors": [
{
"message": "<string>",
"location": "<string>",
"value": "<unknown>"
}
],
"instance": "<string>",
"reason": "<string>",
"retry_after_ms": 123
}{
"code": "INVALID_ARGUMENT",
"request_id": "<string>",
"status": 123,
"title": "<string>",
"type": "<string>",
"detail": "<string>",
"details": "<unknown>",
"errors": [
{
"message": "<string>",
"location": "<string>",
"value": "<unknown>"
}
],
"instance": "<string>",
"reason": "<string>",
"retry_after_ms": 123
}{
"code": "INVALID_ARGUMENT",
"request_id": "<string>",
"status": 123,
"title": "<string>",
"type": "<string>",
"detail": "<string>",
"details": "<unknown>",
"errors": [
{
"message": "<string>",
"location": "<string>",
"value": "<unknown>"
}
],
"instance": "<string>",
"reason": "<string>",
"retry_after_ms": 123
}{
"code": "INVALID_ARGUMENT",
"request_id": "<string>",
"status": 123,
"title": "<string>",
"type": "<string>",
"detail": "<string>",
"details": "<unknown>",
"errors": [
{
"message": "<string>",
"location": "<string>",
"value": "<unknown>"
}
],
"instance": "<string>",
"reason": "<string>",
"retry_after_ms": 123
}{
"code": "INVALID_ARGUMENT",
"request_id": "<string>",
"status": 123,
"title": "<string>",
"type": "<string>",
"detail": "<string>",
"details": "<unknown>",
"errors": [
{
"message": "<string>",
"location": "<string>",
"value": "<unknown>"
}
],
"instance": "<string>",
"reason": "<string>",
"retry_after_ms": 123
}{
"code": "INVALID_ARGUMENT",
"request_id": "<string>",
"status": 123,
"title": "<string>",
"type": "<string>",
"detail": "<string>",
"details": "<unknown>",
"errors": [
{
"message": "<string>",
"location": "<string>",
"value": "<unknown>"
}
],
"instance": "<string>",
"reason": "<string>",
"retry_after_ms": 123
}{
"code": "INVALID_ARGUMENT",
"request_id": "<string>",
"status": 123,
"title": "<string>",
"type": "<string>",
"detail": "<string>",
"details": "<unknown>",
"errors": [
{
"message": "<string>",
"location": "<string>",
"value": "<unknown>"
}
],
"instance": "<string>",
"reason": "<string>",
"retry_after_ms": 123
}{
"code": "INVALID_ARGUMENT",
"request_id": "<string>",
"status": 123,
"title": "<string>",
"type": "<string>",
"detail": "<string>",
"details": "<unknown>",
"errors": [
{
"message": "<string>",
"location": "<string>",
"value": "<unknown>"
}
],
"instance": "<string>",
"reason": "<string>",
"retry_after_ms": 123
}{
"code": "INVALID_ARGUMENT",
"request_id": "<string>",
"status": 123,
"title": "<string>",
"type": "<string>",
"detail": "<string>",
"details": "<unknown>",
"errors": [
{
"message": "<string>",
"location": "<string>",
"value": "<unknown>"
}
],
"instance": "<string>",
"reason": "<string>",
"retry_after_ms": 123
}List a connection's tables
List the source tables registered on a connection that the person may read, with their owner, filter, access requirement and columns.
curl --request GET \
--url https://api.usenexio.com/connections/{id}/tables \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.usenexio.com/connections/{id}/tables"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.usenexio.com/connections/{id}/tables', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"data": [
{
"columns": [
{
"class": "<string>",
"column": "<string>",
"feeds": [
"<string>"
],
"state": "served"
}
],
"object": "<string>",
"owner": "none",
"requirement": "<string>",
"system": "ams360",
"table": "<string>",
"filter": "<string>",
"filter_required": true
}
],
"page": {
"cursor": "<string>",
"limit": 123,
"next": "<string>",
"prev": "<string>",
"offset": 123
},
"request_id": "<string>",
"source": {
"actor": {
"impersonation_kind": "act_as",
"impersonator": "<string>",
"member": "<string>"
},
"connection": "<string>",
"family": "<string>",
"freshness": "<string>",
"id": "<string>",
"kind": "warehouse",
"origin": "default",
"snapshot_at": "2023-11-07T05:31:56Z",
"subject": {
"scope": "<string>",
"selection": [
"<string>"
],
"selection_kind": "<string>",
"selection_source": "<string>",
"member": {
"display_name": "<string>",
"id": "<string>",
"scope": "<string>"
}
},
"system": "warehouse",
"elapsed_ms": 123,
"reason": {
"kind": "<string>",
"note": "<string>",
"ref": "<string>"
},
"snapshot_id": "<string>",
"stale_since": "2023-11-07T05:31:56Z"
},
"unreachable": [
{
"part": "<string>",
"reason": "<string>",
"detail": "<string>",
"ref": "<string>"
}
],
"warnings": [
{
"code": "<string>",
"detail": "<string>"
}
],
"facets": {},
"total": {
"exact": true,
"value": 123
}
}{
"code": "INVALID_ARGUMENT",
"request_id": "<string>",
"status": 123,
"title": "<string>",
"type": "<string>",
"detail": "<string>",
"details": "<unknown>",
"errors": [
{
"message": "<string>",
"location": "<string>",
"value": "<unknown>"
}
],
"instance": "<string>",
"reason": "<string>",
"retry_after_ms": 123
}{
"code": "INVALID_ARGUMENT",
"request_id": "<string>",
"status": 123,
"title": "<string>",
"type": "<string>",
"detail": "<string>",
"details": "<unknown>",
"errors": [
{
"message": "<string>",
"location": "<string>",
"value": "<unknown>"
}
],
"instance": "<string>",
"reason": "<string>",
"retry_after_ms": 123
}{
"code": "INVALID_ARGUMENT",
"request_id": "<string>",
"status": 123,
"title": "<string>",
"type": "<string>",
"detail": "<string>",
"details": "<unknown>",
"errors": [
{
"message": "<string>",
"location": "<string>",
"value": "<unknown>"
}
],
"instance": "<string>",
"reason": "<string>",
"retry_after_ms": 123
}{
"code": "INVALID_ARGUMENT",
"request_id": "<string>",
"status": 123,
"title": "<string>",
"type": "<string>",
"detail": "<string>",
"details": "<unknown>",
"errors": [
{
"message": "<string>",
"location": "<string>",
"value": "<unknown>"
}
],
"instance": "<string>",
"reason": "<string>",
"retry_after_ms": 123
}{
"code": "INVALID_ARGUMENT",
"request_id": "<string>",
"status": 123,
"title": "<string>",
"type": "<string>",
"detail": "<string>",
"details": "<unknown>",
"errors": [
{
"message": "<string>",
"location": "<string>",
"value": "<unknown>"
}
],
"instance": "<string>",
"reason": "<string>",
"retry_after_ms": 123
}{
"code": "INVALID_ARGUMENT",
"request_id": "<string>",
"status": 123,
"title": "<string>",
"type": "<string>",
"detail": "<string>",
"details": "<unknown>",
"errors": [
{
"message": "<string>",
"location": "<string>",
"value": "<unknown>"
}
],
"instance": "<string>",
"reason": "<string>",
"retry_after_ms": 123
}{
"code": "INVALID_ARGUMENT",
"request_id": "<string>",
"status": 123,
"title": "<string>",
"type": "<string>",
"detail": "<string>",
"details": "<unknown>",
"errors": [
{
"message": "<string>",
"location": "<string>",
"value": "<unknown>"
}
],
"instance": "<string>",
"reason": "<string>",
"retry_after_ms": 123
}{
"code": "INVALID_ARGUMENT",
"request_id": "<string>",
"status": 123,
"title": "<string>",
"type": "<string>",
"detail": "<string>",
"details": "<unknown>",
"errors": [
{
"message": "<string>",
"location": "<string>",
"value": "<unknown>"
}
],
"instance": "<string>",
"reason": "<string>",
"retry_after_ms": 123
}{
"code": "INVALID_ARGUMENT",
"request_id": "<string>",
"status": 123,
"title": "<string>",
"type": "<string>",
"detail": "<string>",
"details": "<unknown>",
"errors": [
{
"message": "<string>",
"location": "<string>",
"value": "<unknown>"
}
],
"instance": "<string>",
"reason": "<string>",
"retry_after_ms": 123
}Behavior
The response is the one list envelope, with every registered table of the connection the person may read in a single page, sorted by name. A table whose requirement the person’s access policy does not grant is not listed: without the accounting dataset, no accounting table appears, exactly as reading one answers 403CAPABILITY_DENIED. Each entry in data names the table (the name to read it by), the fully qualified source object, the system it belongs to (ams360 for the system of record’s replica, warehouse for a curated warehouse table), its owner (policy, account, claim or none), the requirement it is read under, its match filter and whether that filter is required, and its columns. Each column carries its field class, its state (served or proven when a collection field serves it, estate_only when only this surface reads it) and feeds, the collection fields it serves. The listing reads no rows.
{id} is one of your organization’s connection ids, or sandbox for the sandbox seat’s view of it. Any other id answers 404 NOT_VISIBLE_OR_ABSENT.
This route is for lineage, operators and proofs. Product code reads collections under /records. See Source tables.Authorizations
Send the key as Authorization: Bearer <key>. Two kinds of key exist.
Organization keys are issued in the portal (Settings, then API keys),
each bound to one environment, shaped nx_<environment slug>_<64 hex>. They carry
no capabilities and pass every capability check, with one exception:
routes under /records, /actions, /operations,
/api/v1/engines/{id}/opportunities, /api/v1/graph and
/api/v1/catalog/documents accept an
organization key only when its environment is live, and refuse any
other with 403 scoped_key_required. Revocation takes effect within 60
seconds.
Scoped keys are issued by Nexio on request, shaped
nxsk_v1_<24 hex key id>_<43 character secret>. Each is bound to one
org, one environment, a set of engines and a set of capabilities. A
malformed, unknown or revoked nxsk_ key fails with 401 and is never
retried as an organization key. Revocation takes effect on the next
request. A scoped key without a route's capability gets 403
insufficient_capability; a scoped key not bound to the engine gets 403
engine_binding_forbidden.
Key-grantable capabilities: engines:read, runs:write, runs:read,
runs:defensibility:read, runs:test, catalog:read,
catalog:documents:read, webhooks:manage, conversations:use,
conversations:export, records:read, records:opportunities:run,
actions:write, actions:read, graph:read, records:analyze.
Routes that accept organization keys only (every scoped key gets 403
insufficient_capability): environment management, engine create,
update, configuration and publish, and conversation instance
authoring. Each operation description names the capability a scoped
key needs.
Headers
The person the request is for, as your identity provider's stable user id. Unset keeps the org-wide posture the key alone grants. The retired X-Nexio-* identity headers are refused on this route with 400 INVALID_ARGUMENT, reason LEGACY_HEADER.
The acting person's verified sign-in email, lowercased. Ignored without Nexio-Act-As.
The signed assertion over the identity headers (v1..).
A caller-chosen request id, echoed in the Nexio-Request-Id response header.
The caller's remaining budget for this request, in whole milliseconds (1 to 10 digits, greater than zero), relative to receipt. The engine stops work at the shorter of this and the route's own budget, and answers 504 request_timeout when it expires. A value above the route budget is capped to it; a malformed value is ignored.
Path Parameters
The connection: one of the organization's connection ids, or sandbox for the sandbox seat's view of it. Any other id answers 404 NOT_VISIBLE_OR_ABSENT.
Response
OK
Every registered table, sorted by name.
Hide child attributes
Hide child attributes
Every column a read serves, with its field class.
Hide child attributes
Hide child attributes
The column's field class: business, identity, direct_identifier, and so on.
The source column, as the system of record spells it.
The collection fields that serve the column, as <family>.<field>; empty when no collection serves it yet.
served or proven when a collection field serves the column, estate_only when only this surface reads it. Absent for a curated warehouse table.
served, proven, estate_only The source object the rows are read from, fully qualified.
The record a read is narrowed to; its id is the required filter (policy_id, account_id, claim_id). none: the table is read whole.
none, policy, account, claim The access row the table is read under: reference (the vocabulary dataset), accounting, policy, account, claim or org.
The system the object belongs to: the system of record's replica, or a curated warehouse table.
ams360, warehouse The table's name on GET /connections/{id}/tables/{table}.
The match filter the table takes, named after its column (cocode, brokercode); absent when it takes none.
True when the table is read one filter value at a time.
Hide child attributes
Hide child attributes
The cursor that produced this page; null for the first page.
The page size the platform applied, after any coercion (see warnings).
The cursor of the following page; null at the end of the collection.
The cursor of the preceding page; null on the first page.
The rows skipped before this page, echoed only when the request sent offset (a register's page jump).
The request id, as echoed in the Nexio-Request-Id response header.
Hide child attributes
Hide child attributes
The id of the connection that answered; empty when the read had no connection.
The registry family that answered.
fresh, cached, stale, live or stale_after_write.
The registry source id (warehouse, ams360_ems, ...), empty when absent.
The kind of source that answered: the warehouse, the customer's system of record (whichever vendor; the vendor is in id), the platform's own store, or absent when no source serves the family.
warehouse, system, store, absent Which input decided the source.
default, connection, seat The instant the rows were read at: the warehouse pin, or the live call's time.
Hide child attributes
Hide child attributes
The scope kind the acting seat resolved to (self, office, all, ...).
The subject selection served, as subject= tokens (own, book:, producer:<code|me>, client_manager:<code|me>, member:). Empty when none was sent.
own, code, client_manager, account, boundary or whole: what the served relation is.
request when the caller chose the selection; none when it chose nothing.
Deprecated: read kind instead. The system behind the source.
warehouse, ams360, store, absent A live source's call time for this read.
The warehouse snapshot the rows came from, when one names them.
When the snapshot stopped being current, for a stale read.
Parts of the answer no source could fill, each with its reason. Empty when every part was filled.
Hide child attributes
Hide child attributes