{"openapi":"3.1.0","info":{"title":"Orbital Wiki (BYOK) API","version":"0.1.0","description":"Orbital Wiki (BYOK) lets an AI assistant read your own Orbital Wiki data through the Orbital Wiki API with a key you supply (Orbital Wiki API key (starts with ow_)). Read-only: 10 tools (list_satellites, get_satellite, get_satellite_tle, get_satellite_omm, search_satellites, list_operators, get_operator, list_reentries, get_catalog_stats, list_data_sources). The BYOK key travels with each...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-orbitalwiki.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-orbitalwiki/docs"},"termsOfService":"https://connectorbay.com/byok-orbitalwiki/terms"},"servers":[{"url":"https://byok-orbitalwiki.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-orbitalwiki/docs"},"security":[{"upstreamKey":[]}],"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer","description":"Optional. A Pro API key raises rate limits; no credentials are required."},"upstreamKey":{"type":"apiKey","in":"header","name":"X-Upstream-Key","description":"Your own key for the service this connector wraps (bring your own key). Used for that one call only; never stored, logged or cached."}},"schemas":{"Error":{"type":"object","properties":{"ok":{"const":false},"error":{"type":"object"}}}}},"paths":{"/v1/tools/list_satellites":{"post":{"operationId":"list_satellites","summary":"List satellites in the catalog with optional filters for orbit class, status, object class, country, active flag and a t","description":"List satellites in the catalog with optional filters for orbit class, status, object class, country, active flag and a text query; paged with limit and offset. Use for \"Which operational satellites are in low Earth orbit\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"orbit_class":{"anyOf":[{"maxLength":20,"type":"string"},{"type":"null"}],"default":null,"description":"Orbit class filter, for example LEO.","title":"Orbit Class"},"status":{"anyOf":[{"maxLength":30,"type":"string"},{"type":"null"}],"default":null,"description":"Operational status filter, for example OPERATIONAL.","title":"Status"},"object_class":{"anyOf":[{"maxLength":30,"type":"string"},{"type":"null"}],"default":null,"description":"Object class filter, for example PAYLOAD.","title":"Object Class"},"country":{"anyOf":[{"maxLength":60,"type":"string"},{"type":"null"}],"default":null,"description":"Country filter.","title":"Country"},"active":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"True to list only active satellites.","title":"Active"},"q":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Free-text search within the catalog.","title":"Q"},"limit":{"anyOf":[{"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"Maximum number of records to return.","title":"Limit"},"offset":{"anyOf":[{"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Number of records to skip, for paging.","title":"Offset"}},"title":"list_satellitesArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_satellite":{"post":{"operationId":"get_satellite","summary":"Get the full record of one satellite by NORAD catalog number, with provenance claims and source metadata. Use for \"Give ","description":"Get the full record of one satellite by NORAD catalog number, with provenance claims and source metadata. Use for \"Give me the catalog record of the International Space Station\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"norad_cat_id":{"description":"NORAD catalog number of the satellite, for example 25544 (the International Space Station).","maximum":999999,"minimum":1,"title":"Norad Cat Id","type":"integer"}},"required":["norad_cat_id"],"title":"get_satelliteArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_satellite_tle":{"post":{"operationId":"get_satellite_tle","summary":"Get the two-line element set of a satellite, rebuilt from stored mean elements; includes a stale warning when the elemen","description":"Get the two-line element set of a satellite, rebuilt from stored mean elements; includes a stale warning when the elements are older than 3 days. Use for \"What is the latest TLE of the ISS\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"norad_cat_id":{"description":"NORAD catalog number of the satellite, for example 25544 (the International Space Station).","maximum":999999,"minimum":1,"title":"Norad Cat Id","type":"integer"}},"required":["norad_cat_id"],"title":"get_satellite_tleArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_satellite_omm":{"post":{"operationId":"get_satellite_omm","summary":"Get the CCSDS OMM JSON mean elements of a satellite (use when a TLE cannot represent the object). Use for \"Show the OMM ","description":"Get the CCSDS OMM JSON mean elements of a satellite (use when a TLE cannot represent the object). Use for \"Show the OMM orbital elements of satellite 25544\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"norad_cat_id":{"description":"NORAD catalog number of the satellite, for example 25544 (the International Space Station).","maximum":999999,"minimum":1,"title":"Norad Cat Id","type":"integer"}},"required":["norad_cat_id"],"title":"get_satellite_ommArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/search_satellites":{"post":{"operationId":"search_satellites","summary":"Search the catalog by name, NORAD id, COSPAR id, operator or country, with optional orbit class and status filters. Use ","description":"Search the catalog by name, NORAD id, COSPAR id, operator or country, with optional orbit class and status filters. Use for \"Find satellites named Sentinel\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"q":{"description":"Search text: a name, NORAD id, COSPAR id, operator or country.","maxLength":100,"title":"Q","type":"string"},"orbit_class":{"anyOf":[{"maxLength":20,"type":"string"},{"type":"null"}],"default":null,"description":"Orbit class filter, for example LEO.","title":"Orbit Class"},"status":{"anyOf":[{"maxLength":30,"type":"string"},{"type":"null"}],"default":null,"description":"Operational status filter, for example OPERATIONAL.","title":"Status"},"limit":{"anyOf":[{"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"Maximum number of records to return.","title":"Limit"},"offset":{"anyOf":[{"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Number of records to skip, for paging.","title":"Offset"}},"required":["q"],"title":"search_satellitesArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_operators":{"post":{"operationId":"list_operators","summary":"List satellite operators aggregated from the payload catalog, ranked by number of active satellites. Use for \"Which oper","description":"List satellite operators aggregated from the payload catalog, ranked by number of active satellites. Use for \"Which operators run the most satellites\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"limit":{"anyOf":[{"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"Maximum number of records to return.","title":"Limit"},"offset":{"anyOf":[{"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Number of records to skip, for paging.","title":"Offset"}},"title":"list_operatorsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_operator":{"post":{"operationId":"get_operator","summary":"Get one operator by its slug with a paged list of its satellites. Use for \"Which satellites does the operator spacex run","description":"Get one operator by its slug with a paged list of its satellites. Use for \"Which satellites does the operator spacex run\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"slug":{"description":"Operator slug taken from list_operators, for example 'spacex'.","maxLength":80,"title":"Slug","type":"string"},"limit":{"anyOf":[{"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"Maximum number of records to return.","title":"Limit"},"offset":{"anyOf":[{"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Number of records to skip, for paging.","title":"Offset"}},"required":["slug"],"title":"get_operatorArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_reentries":{"post":{"operationId":"list_reentries","summary":"List objects marked as decayed, with the newest catalog change first. Use for \"Which satellites re-entered recently\".","description":"List objects marked as decayed, with the newest catalog change first. Use for \"Which satellites re-entered recently\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"limit":{"anyOf":[{"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"Maximum number of records to return.","title":"Limit"},"offset":{"anyOf":[{"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Number of records to skip, for paging.","title":"Offset"}},"title":"list_reentriesArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_catalog_stats":{"post":{"operationId":"get_catalog_stats","summary":"Get the catalog summary: counts by object class, status and coverage. Use for \"How many satellites does the Orbital Wiki","description":"Get the catalog summary: counts by object class, status and coverage. Use for \"How many satellites does the Orbital Wiki catalog hold, by status\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"get_catalog_statsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_data_sources":{"post":{"operationId":"list_data_sources","summary":"List the data sources behind the catalog with their license and the attribution text each requires. Use for \"What attrib","description":"List the data sources behind the catalog with their license and the attribution text each requires. Use for \"What attribution do I need for Orbital Wiki data\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_data_sourcesArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}}}}