{"openapi":"3.1.0","info":{"title":"PoolParty hosted API","version":"atlas.consume-gateway/1","description":"The consume gateway is the one process this origin runs. It forwards each route in its closed table to the hub as a fresh request with the hub's CA pinned; the hub verifies every credential. What is listed here is exactly what the process that served this document mounted."},"servers":[{"url":"/","description":"The origin this document was fetched from."}],"tags":[{"name":"origin","description":"What the gateway answers itself."},{"name":"service","description":"The hosted service lane: OpenAI-compatible chat, embeddings, durable batch jobs, the MCP door."},{"name":"account","description":"Accounts: passkeys, credits, referrals."},{"name":"site","description":"Embedded site widgets."},{"name":"screen","description":"Consume-only screens."},{"name":"commons","description":"The Public Pool's device lane and its public aggregate."},{"name":"download","description":"The download lane: installers, digests, the TUF chain, the verifier."},{"name":"diagnostics","description":"Opt-in diagnostics reports."}],"x-atlas-lanes":{"account":false,"site":false,"commons":false,"download":true,"diagnostics":false},"paths":{"/health/live":{"get":{"summary":"Liveness — a constant answer, never windowed.","tags":["origin"],"responses":{"200":{"description":"{ status: ok, protocol }"}}}},"/stats.json":{"get":{"summary":"The home pool's identity-free figures (atlas.pool-stats/1), cached thirty seconds.","tags":["origin"],"responses":{"200":{"description":"The figures."},"503":{"description":"stats_unavailable"}}}},"/stats":{"get":{"summary":"The same figures as a scriptless HTML page.","tags":["origin"],"responses":{"200":{"description":"HTML under a policy that admits numbers and nothing else."}}}},"/openapi.json":{"get":{"summary":"This document — built from the route tables this process mounted.","tags":["origin"],"responses":{"200":{"description":"OpenAPI 3.1, JSON."}}}},"/v1/service/models":{"get":{"summary":"The models the pool can serve now, in OpenAI's list shape.","tags":["service"],"security":[{"serviceKey":[]}],"responses":{"default":{"description":"The hub's answer, forwarded with its status and its allowlisted headers."}}}},"/v1/service/chat/completions":{"post":{"summary":"An OpenAI-compatible chat completion on the pool; a long wait answers 504 with a job id to poll.","tags":["service"],"security":[{"serviceKey":[]}],"requestBody":{"required":true,"content":{"application/json":{}}},"responses":{"default":{"description":"The hub's answer, forwarded with its status and its allowlisted headers."}}}},"/v1/service/chat/completions/{jobId}":{"get":{"summary":"Poll a queued chat completion by job id.","tags":["service"],"security":[{"serviceKey":[]}],"responses":{"default":{"description":"The hub's answer, forwarded with its status and its allowlisted headers."}},"parameters":[{"name":"jobId","in":"path","required":true,"schema":{"type":"string","pattern":"^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"}}]}},"/v1/service/embeddings":{"post":{"summary":"OpenAI-compatible embeddings, queued and answered with a job id.","tags":["service"],"security":[{"serviceKey":[]}],"requestBody":{"required":true,"content":{"application/json":{}}},"responses":{"default":{"description":"The hub's answer, forwarded with its status and its allowlisted headers."}}}},"/v1/service/embeddings/{jobId}":{"get":{"summary":"Poll an embeddings job by id.","tags":["service"],"security":[{"serviceKey":[]}],"responses":{"default":{"description":"The hub's answer, forwarded with its status and its allowlisted headers."}},"parameters":[{"name":"jobId","in":"path","required":true,"schema":{"type":"string","pattern":"^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"}}]}},"/v1/service/workload-modules":{"post":{"summary":"Upload a WASM workload module (raw bytes).","tags":["service"],"security":[{"serviceKey":[]}],"requestBody":{"required":true,"content":{"application/octet-stream":{}}},"responses":{"default":{"description":"The hub's answer, forwarded with its status and its allowlisted headers."}}}},"/v1/service/artifacts":{"post":{"summary":"Upload an artifact (raw bytes).","tags":["service"],"security":[{"serviceKey":[]}],"requestBody":{"required":true,"content":{"application/octet-stream":{}}},"responses":{"default":{"description":"The hub's answer, forwarded with its status and its allowlisted headers."}}}},"/v1/service/workloads":{"post":{"summary":"Register a workload over an uploaded module.","tags":["service"],"security":[{"serviceKey":[]}],"requestBody":{"required":true,"content":{"application/json":{}}},"responses":{"default":{"description":"The hub's answer, forwarded with its status and its allowlisted headers."}}}},"/v1/service/job-groups":{"post":{"summary":"Create a job group — a sharded batch over a registered workload.","tags":["service"],"security":[{"serviceKey":[]}],"requestBody":{"required":true,"content":{"application/json":{}}},"responses":{"default":{"description":"The hub's answer, forwarded with its status and its allowlisted headers."}}}},"/v1/service/job-groups/{groupId}":{"get":{"summary":"A job group's status.","tags":["service"],"security":[{"serviceKey":[]}],"responses":{"default":{"description":"The hub's answer, forwarded with its status and its allowlisted headers."}},"parameters":[{"name":"groupId","in":"path","required":true,"schema":{"type":"string","pattern":"^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"}}]}},"/v1/service/job-groups/{groupId}/cancel":{"post":{"summary":"Cancel a job group.","tags":["service"],"security":[{"serviceKey":[]}],"requestBody":{"required":true,"content":{"application/json":{}}},"responses":{"default":{"description":"The hub's answer, forwarded with its status and its allowlisted headers."}},"parameters":[{"name":"groupId","in":"path","required":true,"schema":{"type":"string","pattern":"^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"}}]}},"/v1/service/jobs/{jobId}/output":{"get":{"summary":"A finished job's output, as bytes.","tags":["service"],"security":[{"serviceKey":[]}],"responses":{"default":{"description":"The hub's answer, forwarded with its status and its allowlisted headers."}},"parameters":[{"name":"jobId","in":"path","required":true,"schema":{"type":"string","pattern":"^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"}}]}},"/v1/service/jobs/{jobId}/cancel":{"post":{"summary":"Cancel a job.","tags":["service"],"security":[{"serviceKey":[]}],"requestBody":{"required":true,"content":{"application/json":{}}},"responses":{"default":{"description":"The hub's answer, forwarded with its status and its allowlisted headers."}},"parameters":[{"name":"jobId","in":"path","required":true,"schema":{"type":"string","pattern":"^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"}}]}},"/v1/service/mesh-relay/access":{"post":{"summary":"The owner's relay asks whether to admit a connecting endpoint, named in the x-iroh-endpoint-id header, with a key of the exclusive mesh-relay scope.","tags":["service"],"security":[{"serviceKey":[]}],"requestBody":{"required":true,"content":{"application/json":{}}},"responses":{"default":{"description":"The hub's answer, forwarded with its status and its allowlisted headers."}}}},"/v1/service/v1/messages":{"post":{"summary":"The Claude-Messages shape — the path the stock Anthropic SDKs produce over this base URL; x-api-key is accepted beside the bearer.","tags":["service"],"security":[{"serviceKey":[]},{"anthropicApiKey":[]}],"requestBody":{"required":true,"content":{"application/json":{}}},"responses":{"default":{"description":"The hub's answer, forwarded with its status and its allowlisted headers."}}}},"/v1/service/v1/messages/{jobId}":{"get":{"summary":"Poll a queued Messages call by job id.","tags":["service"],"security":[{"serviceKey":[]},{"anthropicApiKey":[]}],"responses":{"default":{"description":"The hub's answer, forwarded with its status and its allowlisted headers."}},"parameters":[{"name":"jobId","in":"path","required":true,"schema":{"type":"string","pattern":"^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$"}}]}},"/v1/service/mcp":{"post":{"summary":"The hosted MCP door (Streamable HTTP).","tags":["service"],"security":[{"serviceKey":[]}],"requestBody":{"required":true,"content":{"application/json":{}}},"responses":{"default":{"description":"The hub's answer, forwarded with its status and its allowlisted headers."}}},"get":{"summary":"The MCP door's GET: the hub's 405 with its Allow header, so a probing client sees the door.","tags":["service"],"security":[{"serviceKey":[]}],"responses":{"default":{"description":"The hub's answer, forwarded with its status and its allowlisted headers."}}}},"/download":{"get":{"summary":"The download page.","tags":["download"],"responses":{"200":{"description":"The file, as published."}}}},"/download/app.js":{"get":{"summary":"The download page's own script.","tags":["download"],"responses":{"200":{"description":"The file, as published."}}}},"/download/notices":{"get":{"summary":"Third-party notices for the published build.","tags":["download"],"responses":{"200":{"description":"The file, as published."}}}},"/download/publication.json":{"get":{"summary":"The public publication record (atlas.download-publication.public/1): every served file, its digest, size, architecture and route.","tags":["download"],"responses":{"200":{"description":"The file, as published."}}}},"/download/macos":{"get":{"summary":"A published installer or package for download.","tags":["download"],"responses":{"200":{"description":"The file, as published."}}}},"/download/macos.sha256":{"get":{"summary":"The SHA-256 digest of the file, as text.","tags":["download"],"responses":{"200":{"description":"The file, as published."}}}},"/download/macos.verification.json":{"get":{"summary":"The verification receipt of the file.","tags":["download"],"responses":{"200":{"description":"The file, as published."}}}},"/download/tuf/trusted-root.json":{"get":{"summary":"The current TUF root (the chain's head).","tags":["download"],"responses":{"200":{"description":"The file, as published."}}}},"/download/tuf/release-receipt.json":{"get":{"summary":"The publisher's release receipt.","tags":["download"],"responses":{"200":{"description":"The file, as published."}}}},"/download/SHA256SUMS":{"get":{"summary":"SHA-256 digests of the files the page serves for download.","tags":["download"],"responses":{"200":{"description":"The file, as published."}}}},"/download/verify.mjs":{"get":{"summary":"The served verifier: a Node script that walks the TUF chain from a pinned root and checks every download.","tags":["download"],"responses":{"200":{"description":"The file, as published."}}}},"/download/linux-aarch64.deb":{"get":{"summary":"A published installer or package for download.","tags":["download"],"responses":{"200":{"description":"The file, as published."}}}},"/download/linux-aarch64.deb.sha256":{"get":{"summary":"The SHA-256 digest of the file, as text.","tags":["download"],"responses":{"200":{"description":"The file, as published."}}}},"/download/linux-aarch64.tar.gz":{"get":{"summary":"A published installer or package for download.","tags":["download"],"responses":{"200":{"description":"The file, as published."}}}},"/download/linux-aarch64.tar.gz.sha256":{"get":{"summary":"The SHA-256 digest of the file, as text.","tags":["download"],"responses":{"200":{"description":"The file, as published."}}}},"/download/linux-x86_64.deb":{"get":{"summary":"A published installer or package for download.","tags":["download"],"responses":{"200":{"description":"The file, as published."}}}},"/download/linux-x86_64.deb.sha256":{"get":{"summary":"The SHA-256 digest of the file, as text.","tags":["download"],"responses":{"200":{"description":"The file, as published."}}}},"/download/linux-x86_64.tar.gz":{"get":{"summary":"A published installer or package for download.","tags":["download"],"responses":{"200":{"description":"The file, as published."}}}},"/download/linux-x86_64.tar.gz.sha256":{"get":{"summary":"The SHA-256 digest of the file, as text.","tags":["download"],"responses":{"200":{"description":"The file, as published."}}}},"/download/windows-x86_64.msi":{"get":{"summary":"A published installer or package for download.","tags":["download"],"responses":{"200":{"description":"The file, as published."}}}},"/download/windows-x86_64.msi.sha256":{"get":{"summary":"The SHA-256 digest of the file, as text.","tags":["download"],"responses":{"200":{"description":"The file, as published."}}}},"/download/trust.json":{"get":{"summary":"The trust manifest (atlas.download-trust/1): the build, the artifacts, the TUF root, the SBOMs and the limit statement.","tags":["download"],"responses":{"200":{"description":"The file, as published."}}}},"/download/trust.json.sha256":{"get":{"summary":"The SHA-256 digest of the file, as text.","tags":["download"],"responses":{"200":{"description":"The file, as published."}}}},"/download/sbom/atlas-source-b825d7668683.cdx.json":{"get":{"summary":"A CycloneDX SBOM.","tags":["download"],"responses":{"200":{"description":"The file, as published."}}}},"/download/sbom/PoolParty_0.1.49_macos_arm64_signed-notarized.pkg.cdx.json":{"get":{"summary":"A CycloneDX SBOM.","tags":["download"],"responses":{"200":{"description":"The file, as published."}}}},"/download/sbom/poolparty_0.1.49_arm64.deb.cdx.json":{"get":{"summary":"A CycloneDX SBOM.","tags":["download"],"responses":{"200":{"description":"The file, as published."}}}},"/download/sbom/atlas-agent_0.1.49_linux_aarch64.tar.gz.cdx.json":{"get":{"summary":"A CycloneDX SBOM.","tags":["download"],"responses":{"200":{"description":"The file, as published."}}}},"/download/sbom/poolparty_0.1.49_amd64.deb.cdx.json":{"get":{"summary":"A CycloneDX SBOM.","tags":["download"],"responses":{"200":{"description":"The file, as published."}}}},"/download/sbom/atlas-agent_0.1.49_linux_x86_64.tar.gz.cdx.json":{"get":{"summary":"A CycloneDX SBOM.","tags":["download"],"responses":{"200":{"description":"The file, as published."}}}},"/download/tuf/metadata/1.root.json":{"get":{"summary":"TUF metadata, by version — every root version the lane has served, so a client pinned at any of them walks.","tags":["download"],"responses":{"200":{"description":"The file, as published."}}}},"/download/tuf/metadata/58.snapshot.json":{"get":{"summary":"TUF metadata, by version — every root version the lane has served, so a client pinned at any of them walks.","tags":["download"],"responses":{"200":{"description":"The file, as published."}}}},"/download/tuf/metadata/58.targets.json":{"get":{"summary":"TUF metadata, by version — every root version the lane has served, so a client pinned at any of them walks.","tags":["download"],"responses":{"200":{"description":"The file, as published."}}}},"/download/tuf/metadata/timestamp.json":{"get":{"summary":"TUF metadata, by version — every root version the lane has served, so a client pinned at any of them walks.","tags":["download"],"responses":{"200":{"description":"The file, as published."}}}},"/download/tuf/targets/76563ab94adc3b5cf189d36f0dd3390e98aef867761608751439cbb3068954a5.channels/pilot/macos/aarch64/atlas-installer.pkg":{"get":{"summary":"A TUF target, by digest and name.","tags":["download"],"responses":{"200":{"description":"The file, as published."}}}},"/download/tuf/targets/3de746b6248ebb24619e7c13abbf7251e2f8db497a3598f6ee3efe48c90a2faa.channels/pilot/macos/aarch64/atlas-agent":{"get":{"summary":"A TUF target, by digest and name.","tags":["download"],"responses":{"200":{"description":"The file, as published."}}}},"/download/tuf/targets/3f5bb0588f6156c008d1fd17e550178eaeb069d4c4703c693535f87a92cba67d.channels/pilot/linux/aarch64/atlas-agent.deb":{"get":{"summary":"A TUF target, by digest and name.","tags":["download"],"responses":{"200":{"description":"The file, as published."}}}},"/download/tuf/targets/332383ab89a5078c1e18dfc262d25c896bc3eb836b93e32496dca804931c3699.channels/pilot/linux/aarch64/atlas-agent.tar.gz":{"get":{"summary":"A TUF target, by digest and name.","tags":["download"],"responses":{"200":{"description":"The file, as published."}}}},"/download/tuf/targets/e17fcad606d2e05300818cd47982626b4e3dc836917b0fc358bf56258b3c83cd.channels/pilot/linux/aarch64/atlas-agent":{"get":{"summary":"A TUF target, by digest and name.","tags":["download"],"responses":{"200":{"description":"The file, as published."}}}},"/download/tuf/targets/d0cbf1b3398e4f3e94444d9c14f426a4a1ba53eebfdffc67dc5d98780fa565ff.channels/pilot/all/all/commons-workloads.json":{"get":{"summary":"A TUF target, by digest and name.","tags":["download"],"responses":{"200":{"description":"The file, as published."}}}},"/download/tuf/targets/baae9492ebeb49ca95db2b9c591e06e0cf4fb5d34847dded28f75706cc8a276d.channels/pilot/linux/x86_64/atlas-agent.deb":{"get":{"summary":"A TUF target, by digest and name.","tags":["download"],"responses":{"200":{"description":"The file, as published."}}}},"/download/tuf/targets/443e79b8df185f1d8640be6dd7373daf01cd20f37e079481c958067c3764cdba.channels/pilot/linux/x86_64/atlas-agent.tar.gz":{"get":{"summary":"A TUF target, by digest and name.","tags":["download"],"responses":{"200":{"description":"The file, as published."}}}},"/download/tuf/targets/c82b90ed5f593a730bbe9fb218c17fd35cf00efbda63bc35b89c20ef31eb9a56.channels/pilot/linux/x86_64/atlas-agent":{"get":{"summary":"A TUF target, by digest and name.","tags":["download"],"responses":{"200":{"description":"The file, as published."}}}},"/download/tuf/targets/6f1df56ddcdba8fe6433c94852600cd2ad0ac4cfd8d57a42b907774476533eb0.channels/pilot/windows/x86_64/atlas-agent.msi":{"get":{"summary":"A TUF target, by digest and name.","tags":["download"],"responses":{"200":{"description":"The file, as published."}}}},"/download/tuf/targets/94e75d09ff76a49e83a1af545f2ee16497318f17cbff2ce235e8b147da7f63d8.channels/pilot/all/all/trust.json":{"get":{"summary":"A TUF target, by digest and name.","tags":["download"],"responses":{"200":{"description":"The file, as published."}}}}},"components":{"securitySchemes":{"serviceKey":{"type":"http","scheme":"bearer","bearerFormat":"atlas_key_v1_<id>.<secret>","description":"A service key the pool's operator minted; verified at the hub."},"anthropicApiKey":{"type":"apiKey","in":"header","name":"x-api-key","description":"The same service key, sent the way the Anthropic SDKs send it; accepted on the Messages routes alone."},"accountSession":{"type":"http","scheme":"bearer","bearerFormat":"atlas_account_v1_<session>","description":"An account session minted by a passkey authentication."},"screenKey":{"type":"http","scheme":"bearer","bearerFormat":"atlas_screen_v1_<id>.<secret>","description":"A bounded, revocable consume-only screen credential."},"siteKey":{"type":"http","scheme":"bearer","bearerFormat":"atlas_site_v1_<id>.<secret>","description":"A site key for an embedded widget."},"deviceCredential":{"type":"http","scheme":"bearer","description":"The credential an enrolled Public Pool machine holds."}}}}