List signals
List the Signals this credential may read
GET/v1
A Signal is a customer setup: an organization, a name, and the DataSources it may read. An Odyssey person signing in reads the whole estate; an API key reads what it was granted. organization narrows the answer and can never widen it.
Authenticate with an API key in X-Api-Key, or a bearer token in Authorization: Bearer <token>.
Parameters#
Query parameters#
organizationstring · nullableOnly this organization's Signals: an id from
/v1/organizations. Applied to what the credential already reaches, so naming another organization is refused (404) rather than answered with theirs.
Example request#
curl "https://api.odysseysignal.app/v1/signals" \
-H "X-Api-Key: $ODYSSEY_API_KEY"Response 200#
application/json.
idstring · requiredAddress of the Signal in the URL path.
labelstring · requiredWhat to show. Falls back to the Signal's administrative name when none was authored, so there is always something to display.
organizationobject · requiredWho the Signal belongs to.
Show 2 fieldsHide fields
idstring · requiredThe same id
/v1/organizationslists and?organization=filters on.namestring · requiredReadable name, the same as
/v1/organizationsgives. The id only when the registry has no name for it.
datasource_countinteger · requiredHow many DataSources this Signal may read.
urlstring · requiredWhere to describe this Signal.
datasources_urlstring · requiredWhere to list its DataSources. Published so a client follows links from /v1/signals rather than assembling paths, which is what lets the surface move without breaking clients silently.
Errors#
Errors are application/problem+json (RFC 9457): type, title, status, detail and, for some, more fields that say how to fix the call. The type is https://api.odysseysignal.app/problems/<code>.
| Status | Code | When |
|---|---|---|
| 400 | invalid-request | The request is not valid for this DataSet; detail says why. |
| 401 | unauthorized | No credential, or one that is not accepted. |
| 403 | forbidden | The credential is valid but does not cover what was asked. |
| 404 | not-found | Nothing there, or nothing this credential may read. |
| 422 | validation-failed | The request does not match the contract; errors lists each field. |
| 429 | rate_limited | Too many requests, or the monthly quota is used up. |
| 503 | unavailable | A service behind the API did not answer; try again. |