Skip to content

List signals

List the Signals this credential may read

GET/v1/signals

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 · nullable

    Only 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#

Shell
curl "https://api.odysseysignal.app/v1/signals" \
  -H "X-Api-Key: $ODYSSEY_API_KEY"

Response 200#

application/json.

  • idstring · required

    Address of the Signal in the URL path.

  • labelstring · required

    What to show. Falls back to the Signal's administrative name when none was authored, so there is always something to display.

  • organizationobject · required

    Who the Signal belongs to.

    Show 2 fields
    • idstring · required

      The same id /v1/organizations lists and ?organization= filters on.

    • namestring · required

      Readable name, the same as /v1/organizations gives. The id only when the registry has no name for it.

  • datasource_countinteger · required

    How many DataSources this Signal may read.

  • urlstring · required

    Where to describe this Signal.

  • datasources_urlstring · required

    Where 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>.

StatusCodeWhen
400invalid-requestThe request is not valid for this DataSet; detail says why.
401unauthorizedNo credential, or one that is not accepted.
403forbiddenThe credential is valid but does not cover what was asked.
404not-foundNothing there, or nothing this credential may read.
422validation-failedThe request does not match the contract; errors lists each field.
429rate_limitedToo many requests, or the monthly quota is used up.
503unavailableA service behind the API did not answer; try again.