com.getorbyt.getServiceInfo

getorbyt.com

Documentation

What this deployment of the Orbyt service can currently do, for clients that cannot be upgraded in step with it. Clients feature-detect against `capabilities` rather than comparing version numbers: only one version of this service is ever live, while many client builds run for months. Every field is optional and the whole call is optional — a client that cannot reach it, or reads an older service that does not serve it, must behave exactly as it did before. Unauthenticated.

main query

What this deployment of the Orbyt service can currently do, for clients that cannot be upgraded in step with it. Clients feature-detect against `capabilities` rather than comparing version numbers: only one version of this service is ever live, while many client builds run for months. Every field is optional and the whole call is optional — a client that cannot reach it, or reads an older service that does not serve it, must behave exactly as it did before. Unauthenticated.

Parameters

platform string Optional

Which client is asking, so version advice can be answered for it. An unknown or absent platform is answered without version advice rather than refused.

version string Optional

The asking client's own version, as a semantic version. Lets the service aim `config` values at particular builds, for example to turn something off only in the builds that have a bug. Absent or unreadable is answered as if no build were targeted.

Output

Encodingapplication/json
capabilities array Required

Behaviours this deployment supports, as opaque identifiers a client tests for membership of. Deliberately not `knownValues`: the whole point is that a client meets identifiers it has never heard of and ignores them. Removing one is how a feature is turned off in already-installed clients.

config ref#config Optional

Values the client reads instead of building them in, so they can change without a release. Absent from an older service; a client that finds it absent, or a key missing from it, keeps its built-in default.

minimumClient string Optional

The oldest client version this service still answers correctly for the requested platform, as a semantic version. Advisory: this service does not refuse older clients, it tells them. A client below it should prompt for an update.

notices array Optional

Messages for the viewer, such as a degraded subsystem or a scheduled maintenance window.

providers ref#providers Optional

Which external services this deployment is attached to, so a client can aim `atproto-proxy` at them without a release. Absent from an older service; a client that finds it absent keeps its built-in defaults.

recommendedClient string Optional

The newest released client version for the requested platform, so a client can offer a soft update prompt without a separate service.

releaseNotes ref#releaseNotes Optional

What is new in the asking client's own version, for the sheet a client shows once on its first launch after an update. Present only when the request names a platform and a readable version this service has notes for. Absent from an older service; a client that finds it absent shows nothing.

Try It

Requests are sent directly from your browser. Some servers may block requests due to CORS.

Base URL for XRPC calls (e.g., https://api.bsky.social)
Parameters
Which client is asking, so version advice can be answered for it. An unknown or absent platform is answered without version advice rather than refused.
The asking client's own version, as a semantic version. Lets the service aim `config` values at particular builds, for example to turn something off only in the builds that have a bug. Absent or unreadable is answered as if no build were targeted.
View raw schema
{
  "description": "What this deployment of the Orbyt service can currently do, for clients that cannot be upgraded in step with it. Clients feature-detect against `capabilities` rather than comparing version numbers: only one version of this service is ever live, while many client builds run for months. Every field is optional and the whole call is optional — a client that cannot reach it, or reads an older service that does not serve it, must behave exactly as it did before. Unauthenticated.",
  "output": {
    "encoding": "application/json",
    "schema": {
      "properties": {
        "capabilities": {
          "description": "Behaviours this deployment supports, as opaque identifiers a client tests for membership of. Deliberately not `knownValues`: the whole point is that a client meets identifiers it has never heard of and ignores them. Removing one is how a feature is turned off in already-installed clients.",
          "items": {
            "maxLength": 64,
            "type": "string"
          },
          "maxLength": 128,
          "type": "array"
        },
        "config": {
          "description": "Values the client reads instead of building them in, so they can change without a release. Absent from an older service; a client that finds it absent, or a key missing from it, keeps its built-in default.",
          "ref": "#config",
          "type": "ref"
        },
        "minimumClient": {
          "description": "The oldest client version this service still answers correctly for the requested platform, as a semantic version. Advisory: this service does not refuse older clients, it tells them. A client below it should prompt for an update.",
          "maxLength": 32,
          "type": "string"
        },
        "notices": {
          "description": "Messages for the viewer, such as a degraded subsystem or a scheduled maintenance window.",
          "items": {
            "ref": "#notice",
            "type": "ref"
          },
          "maxLength": 8,
          "type": "array"
        },
        "providers": {
          "description": "Which external services this deployment is attached to, so a client can aim `atproto-proxy` at them without a release. Absent from an older service; a client that finds it absent keeps its built-in defaults.",
          "ref": "#providers",
          "type": "ref"
        },
        "recommendedClient": {
          "description": "The newest released client version for the requested platform, so a client can offer a soft update prompt without a separate service.",
          "maxLength": 32,
          "type": "string"
        },
        "releaseNotes": {
          "description": "What is new in the asking client's own version, for the sheet a client shows once on its first launch after an update. Present only when the request names a platform and a readable version this service has notes for. Absent from an older service; a client that finds it absent shows nothing.",
          "ref": "#releaseNotes",
          "type": "ref"
        }
      },
      "required": [
        "capabilities"
      ],
      "type": "object"
    }
  },
  "parameters": {
    "properties": {
      "platform": {
        "description": "Which client is asking, so version advice can be answered for it. An unknown or absent platform is answered without version advice rather than refused.",
        "knownValues": [
          "ios",
          "web"
        ],
        "type": "string"
      },
      "version": {
        "description": "The asking client's own version, as a semantic version. Lets the service aim `config` values at particular builds, for example to turn something off only in the builds that have a bug. Absent or unreadable is answered as if no build were targeted.",
        "maxLength": 32,
        "type": "string"
      }
    },
    "type": "params"
  },
  "type": "query"
}
config object

Client settings decided by the service. Every value is optional for the client: it keeps a built-in default for each key it reads and ignores keys it does not know.

Properties

values array of ref#configValue Required

Already filtered to the requesting platform and version.

maxLength: 64 items
View raw schema
{
  "description": "Client settings decided by the service. Every value is optional for the client: it keeps a built-in default for each key it reads and ignores keys it does not know.",
  "properties": {
    "values": {
      "description": "Already filtered to the requesting platform and version.",
      "items": {
        "ref": "#configValue",
        "type": "ref"
      },
      "maxLength": 64,
      "type": "array"
    }
  },
  "required": [
    "values"
  ],
  "type": "object"
}
configValue object

One setting. Values are strings so new keys need no schema change; the client parses each key it reads and falls back to its default when the value does not parse.

Properties

key string Required

No description available.

maxLength: 64 bytes
value string Required

No description available.

maxLength: 256 bytes
View raw schema
{
  "description": "One setting. Values are strings so new keys need no schema change; the client parses each key it reads and falls back to its default when the value does not parse.",
  "properties": {
    "key": {
      "maxLength": 64,
      "type": "string"
    },
    "value": {
      "maxLength": 256,
      "type": "string"
    }
  },
  "required": [
    "key",
    "value"
  ],
  "type": "object"
}
notice object

One operator message. `id` is stable so a client can remember that this viewer has already dismissed it.

Properties

id string Required

No description available.

maxLength: 64 bytes
message string Required

No description available.

maxLength: 1000 bytes
severity string Optional

Absent means info. A severity this client does not recognise must be presented as info rather than dropped or treated as blocking.

Known values: info, warning, blocking
url string uri Optional

A valid URI.

View raw schema
{
  "description": "One operator message. `id` is stable so a client can remember that this viewer has already dismissed it.",
  "properties": {
    "id": {
      "maxLength": 64,
      "type": "string"
    },
    "message": {
      "maxLength": 1000,
      "type": "string"
    },
    "severity": {
      "description": "Absent means info. A severity this client does not recognise must be presented as info rather than dropped or treated as blocking.",
      "knownValues": [
        "info",
        "warning",
        "blocking"
      ],
      "type": "string"
    },
    "url": {
      "format": "uri",
      "type": "string"
    }
  },
  "required": [
    "id",
    "message"
  ],
  "type": "object"
}
providers object

Service identities only, never operational endpoints. Each service field is absent when this deployment has none; for `appView` that means standard social reads are unavailable and the client should not attempt them.

Properties

appView string Optional

Service DID with fragment answering `app.bsky.*` reads, e.g. `did:web:api.bsky.app#bsky_appview`.

maxLength: 256 bytes
chat string Optional

Service DID with fragment for chat.

maxLength: 256 bytes
discoveryFeed string at-uri Optional

The feed generator behind Your Mix.

discoveryFeedService string Optional

Service DID with fragment for `discoveryFeed`.

maxLength: 256 bytes
network string Required

A stable label for the connected network, such as `bluesky`.

maxLength: 32 bytes
View raw schema
{
  "description": "Service identities only, never operational endpoints. Each service field is absent when this deployment has none; for `appView` that means standard social reads are unavailable and the client should not attempt them.",
  "properties": {
    "appView": {
      "description": "Service DID with fragment answering `app.bsky.*` reads, e.g. `did:web:api.bsky.app#bsky_appview`.",
      "maxLength": 256,
      "type": "string"
    },
    "chat": {
      "description": "Service DID with fragment for chat.",
      "maxLength": 256,
      "type": "string"
    },
    "discoveryFeed": {
      "description": "The feed generator behind Your Mix.",
      "format": "at-uri",
      "type": "string"
    },
    "discoveryFeedService": {
      "description": "Service DID with fragment for `discoveryFeed`.",
      "maxLength": 256,
      "type": "string"
    },
    "network": {
      "description": "A stable label for the connected network, such as `bluesky`.",
      "maxLength": 32,
      "type": "string"
    }
  },
  "required": [
    "network"
  ],
  "type": "object"
}
releaseNote object

One new thing: a short name and a sentence or two about it.

Properties

detail string Optional

No description available.

maxLength: 500 bytes
title string Required

No description available.

maxLength: 100 bytes
View raw schema
{
  "description": "One new thing: a short name and a sentence or two about it.",
  "properties": {
    "detail": {
      "maxLength": 500,
      "type": "string"
    },
    "title": {
      "maxLength": 100,
      "type": "string"
    }
  },
  "required": [
    "title"
  ],
  "type": "object"
}
releaseNotes object

Notes for one released client version. Written by people for people, in the service so they can be written or corrected without a release.

Properties

items array of ref#releaseNote Required

What is new, most important first.

maxLength: 8 itemsminLength: 1 items
version string Required

The version these notes describe, as a semantic version. A client shows them only when it is its own version.

maxLength: 32 bytes
View raw schema
{
  "description": "Notes for one released client version. Written by people for people, in the service so they can be written or corrected without a release.",
  "properties": {
    "items": {
      "description": "What is new, most important first.",
      "items": {
        "ref": "#releaseNote",
        "type": "ref"
      },
      "maxLength": 8,
      "minLength": 1,
      "type": "array"
    },
    "version": {
      "description": "The version these notes describe, as a semantic version. A client shows them only when it is its own version.",
      "maxLength": 32,
      "type": "string"
    }
  },
  "required": [
    "version",
    "items"
  ],
  "type": "object"
}

Lexicon Garden

@