{"openapi":"3.1.0","info":{"title":"Spaceship (BYOK) API","version":"0.1.0","description":"Spaceship (BYOK) lets an AI assistant read your own Spaceship data through the Spaceship API with a key you supply (API key). Read-only: 7 tools (list_domains, get_domain, list_dns_records, check_domain_availability, list_personal_nameservers, list_hyperlift_applications, get_hyperlift_application). The BYOK key travels with each request, is used for that one call only and is never stored, logged...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-spaceship.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-spaceship/docs"},"termsOfService":"https://connectorbay.com/byok-spaceship/terms"},"servers":[{"url":"https://byok-spaceship.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-spaceship/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_domains":{"post":{"operationId":"list_domains","summary":"List domains in your Spaceship account with registration and expiry dates, auto-renew, status, privacy level and nameser","description":"List domains in your Spaceship account with registration and expiry dates, auto-renew, status, privacy level and nameservers. Use for \"Which Spaceship domains expire soonest\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"take":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many domains to return (1 to 100).","title":"Take"},"skip":{"anyOf":[{"maximum":2147483647,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"How many domains to skip from the start (0 or more).","title":"Skip"},"order_by":{"anyOf":[{"enum":["name","-name","registrationDate","-registrationDate","expirationDate","-expirationDate"],"type":"string"},{"type":"null"}],"default":null,"description":"Sort field; prefix with '-' for descending.","title":"Order By"}},"title":"list_domainsArguments","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_domain":{"post":{"operationId":"get_domain","summary":"Get one domain: dates, auto-renew, lifecycle and verification status, EPP statuses, privacy level and nameservers. Use f","description":"Get one domain: dates, auto-renew, lifecycle and verification status, EPP statuses, privacy level and nameservers. Use for \"Show the Spaceship details of example.com\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"domain":{"description":"Domain name in ASCII form, for example 'example.com'.","maxLength":255,"title":"Domain","type":"string"}},"required":["domain"],"title":"get_domainArguments","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_dns_records":{"post":{"operationId":"list_dns_records","summary":"List the DNS resource records Spaceship hosts for a domain. Returns each record as the API gives it (type, name, TTL and","description":"List the DNS resource records Spaceship hosts for a domain. Returns each record as the API gives it (type, name, TTL and type-specific values). Use for \"What DNS records does example.com have at Spaceship\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"domain":{"description":"Domain name in ASCII form, for example 'example.com'.","maxLength":255,"title":"Domain","type":"string"},"take":{"anyOf":[{"maximum":500,"minimum":1,"type":"integer"},{"type":"null"}],"default":100,"description":"How many records to return (1 to 500).","title":"Take"},"skip":{"anyOf":[{"maximum":2147483647,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"How many items to skip from the start (0 or more).","title":"Skip"}},"required":["domain"],"title":"list_dns_recordsArguments","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/check_domain_availability":{"post":{"operationId":"check_domain_availability","summary":"Check whether a single domain name can be registered and show premium pricing if it applies. Does not register anything.","description":"Check whether a single domain name can be registered and show premium pricing if it applies. Does not register anything. Use for \"Is mycoolidea.dev still available at Spaceship\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"domain":{"description":"Domain name in ASCII form, for example 'example.com'.","maxLength":255,"title":"Domain","type":"string"}},"required":["domain"],"title":"check_domain_availabilityArguments","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_personal_nameservers":{"post":{"operationId":"list_personal_nameservers","summary":"List the personal (vanity) nameservers set on a domain with host and IP addresses. Use for \"Does example.com use persona","description":"List the personal (vanity) nameservers set on a domain with host and IP addresses. Use for \"Does example.com use personal nameservers at Spaceship\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"domain":{"description":"Domain name in ASCII form, for example 'example.com'.","maxLength":255,"title":"Domain","type":"string"}},"required":["domain"],"title":"list_personal_nameserversArguments","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_hyperlift_applications":{"post":{"operationId":"list_hyperlift_applications","summary":"List your Hyperlift (app hosting) applications with status, build status, plan, domain, scale, branch and repository. Us","description":"List your Hyperlift (app hosting) applications with status, build status, plan, domain, scale, branch and repository. Use for \"Which Hyperlift apps do I run at Spaceship and are they healthy\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"take":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many applications to return (1 to 100).","title":"Take"},"skip":{"anyOf":[{"maximum":2147483647,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"How many items to skip from the start (0 or more).","title":"Skip"}},"title":"list_hyperlift_applicationsArguments","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_hyperlift_application":{"post":{"operationId":"get_hyperlift_application","summary":"Get one Hyperlift application by id: status, build status, plan, domain, scale, branch and repository. Use for \"What is ","description":"Get one Hyperlift application by id: status, build status, plan, domain, scale, branch and repository. Use for \"What is the state of my Hyperlift app 3f8b9a2e-5c41-4d6a-9f0e-7b2c8d1a4e5f\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"id":{"description":"Hyperlift application id from list_hyperlift_applications.","maxLength":64,"title":"Id","type":"string"}},"required":["id"],"title":"get_hyperlift_applicationArguments","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}}}}