Menu
Platform
AI
App store purchases
Database
Flags
Jobs and cron
Localization
Monitoring
Notifications
Payments
Queues
Sandboxes
Webhooks
Getting Started
Authentication
KV Store
Deploy & Infrastructure
Reference
API reference
Every service, collection, method and error code, generated from the contracts.
The Sylphx API is one HTTP API for the whole platform, at
https://api.sylphx.com/v1. Every page in this reference is generated from
the protobuf contracts in contracts/ — the same contracts the SDKs, the CLI
and the Terraform provider come from — so a method that is not here is not
served, and a field that is here is a field the API takes.
#Authentication
Every call carries one key in Authorization: Bearer: a secret key
(sylphx_sk_…) from a server, or a publishable key (sylphx_pk_…) from a
browser or a mobile app. A publishable key reaches only the methods marked
callable with a publishable key:
9 of the 536 methods in this reference.
Keys, their kinds and their scopes are in Keys and scopes; the scope a method needs is on its page.
#Names
Everything the API holds is a Resource with one canonical name (AIP-122):
orgs/{org}
orgs/{org}/projects/{project}
orgs/{org}/projects/{project}/envs/{env}
{parent}/{collection}/{id}The collection segment is a snake_case plural, unique across the whole
registry, so it identifies its service on its own. Below the environment the
caller names the id on Create (database_id), and the server assigns one when
it is omitted. - stands for any parent segment on List
(AIP-159). The registry's Resources:
| Resource type | Collection | Name pattern |
|---|---|---|
access.sylphx.com/ApiKey | api_keys | orgs/{org}/projects/{project}/envs/{env}/api_keys/{api_key} |
access.sylphx.com/Environment | envs | orgs/{org}/projects/{project}/envs/{env} |
access.sylphx.com/Org | orgs | orgs/{org} |
access.sylphx.com/Project | projects | orgs/{org}/projects/{project} |
ai.sylphx.com/AiModel | ai_models | ai_models/{ai_model} |
artifacts.sylphx.com/Artifact | artifacts | orgs/{org}/projects/{project}/artifacts/{artifact} |
assets.sylphx.com/Asset | assets | orgs/{org}/projects/{project}/envs/{env}/assets/{asset} |
auth.sylphx.com/AuthConfig | auth_configs | orgs/{org}/projects/{project}/envs/{env}/auth_configs/{auth_config} |
auth.sylphx.com/CustomerOrganization | customer_organizations | orgs/{org}/projects/{project}/envs/{env}/customer_organizations/{customer_organization} |
auth.sylphx.com/EmailDomain | email_domains | orgs/{org}/projects/{project}/envs/{env}/customer_organizations/{customer_organization}/email_domains/{email_domain} |
auth.sylphx.com/EndUser | end_users | orgs/{org}/projects/{project}/envs/{env}/end_users/{end_user} |
auth.sylphx.com/Invitation | invitations | orgs/{org}/projects/{project}/envs/{env}/customer_organizations/{customer_organization}/invitations/{invitation} |
auth.sylphx.com/Membership | memberships | orgs/{org}/projects/{project}/envs/{env}/customer_organizations/{customer_organization}/memberships/{membership} |
auth.sylphx.com/OauthClient | oauth_clients | orgs/{org}/projects/{project}/envs/{env}/oauth_clients/{oauth_client} |
auth.sylphx.com/OrganizationRole | organization_roles | orgs/{org}/projects/{project}/envs/{env}/organization_roles/{organization_role} |
auth.sylphx.com/Session | sessions | orgs/{org}/projects/{project}/envs/{env}/end_users/{end_user}/sessions/{session} |
billing.sylphx.com/BillingAccount | billing_accounts | orgs/{org}/billing_accounts/{billing_account} |
billing.sylphx.com/BudgetLease | budget_leases | orgs/{org}/budget_leases/{budget_lease} |
billing.sylphx.com/Invoice | invoices | orgs/{org}/invoices/{invoice} |
billing.sylphx.com/Meter | meters | meters/{meter} |
billing.sylphx.com/Plan | plans | plans/{plan} |
billing.sylphx.com/UsageReport | usage_reports | orgs/{org}/usage_reports/{usage_report} |
broker.sylphx.com/TrustPolicy | trust_policies | orgs/{org}/trust_policies/{trust_policy} |
build.sylphx.com/Build | builds | orgs/{org}/projects/{project}/builds/{build} |
build.sylphx.com/BuildCache | build_caches | orgs/{org}/projects/{project}/build_caches/{build_cache} |
config.sylphx.com/ConfigChange | config_changes | orgs/{org}/projects/{project}/envs/{env}/config_changes/{config_change} |
config.sylphx.com/ConfigFlag | config_flags | orgs/{org}/projects/{project}/envs/{env}/config_flags/{config_flag} |
config.sylphx.com/ConfigSegment | config_segments | orgs/{org}/projects/{project}/envs/{env}/config_segments/{config_segment} |
connections.sylphx.com/Connection | connections | orgs/{org}/connections/{connection} |
connections.sylphx.com/ConnectionProvider | connection_providers | orgs/{org}/connection_providers/{connection_provider} |
data.sylphx.com/Bucket | buckets | orgs/{org}/projects/{project}/envs/{env}/buckets/{bucket} |
data.sylphx.com/Database | databases | orgs/{org}/projects/{project}/envs/{env}/databases/{database} |
data.sylphx.com/KvNamespace | kv_namespaces | orgs/{org}/projects/{project}/envs/{env}/kv_namespaces/{kv_namespace} |
data.sylphx.com/SearchIndex | search_indexes | orgs/{org}/projects/{project}/envs/{env}/search_indexes/{search_index} |
entitlement.sylphx.com/Entitlement | entitlements | orgs/{org}/entitlements/{entitlement} |
events.sylphx.com/Connector | connectors | orgs/{org}/projects/{project}/envs/{env}/connectors/{connector} |
events.sylphx.com/Event | events | orgs/{org}/projects/{project}/envs/{env}/events/{event} |
events.sylphx.com/InboundEndpoint | inbound_endpoints | orgs/{org}/projects/{project}/envs/{env}/inbound_endpoints/{inbound_endpoint} |
events.sylphx.com/Queue | queues | orgs/{org}/projects/{project}/envs/{env}/queues/{queue} |
events.sylphx.com/RealtimeChannel | realtime_channels | orgs/{org}/projects/{project}/envs/{env}/realtime_channels/{realtime_channel} |
events.sylphx.com/RealtimeMember | realtime_members | orgs/{org}/projects/{project}/envs/{env}/realtime_channels/{realtime_channel}/realtime_members/{realtime_member} |
events.sylphx.com/RealtimeMessage | realtime_messages | orgs/{org}/projects/{project}/envs/{env}/realtime_channels/{realtime_channel}/realtime_messages/{realtime_message} |
events.sylphx.com/Subscription | subscriptions | orgs/{org}/projects/{project}/envs/{env}/subscriptions/{subscription} |
events.sylphx.com/Topic | topics | orgs/{org}/projects/{project}/envs/{env}/topics/{topic} |
events.sylphx.com/WebhookDelivery | webhook_deliveries | orgs/{org}/projects/{project}/envs/{env}/webhook_endpoints/{webhook_endpoint}/webhook_deliveries/{webhook_delivery} |
events.sylphx.com/WebhookEndpoint | webhook_endpoints | orgs/{org}/projects/{project}/envs/{env}/webhook_endpoints/{webhook_endpoint} |
hosting.sylphx.com/Preview | previews | orgs/{org}/projects/{project}/envs/{env}/previews/{preview} |
hosting.sylphx.com/Rollout | service_rollouts | orgs/{org}/projects/{project}/envs/{env}/services/{service}/service_rollouts/{rollout} |
hosting.sylphx.com/Service | services | orgs/{org}/projects/{project}/envs/{env}/services/{service} |
hosting.sylphx.com/SourceLink | source_links | orgs/{org}/projects/{project}/source_links/{source_link} |
keys.sylphx.com/Key | keys | orgs/{org}/projects/{project}/envs/{env}/keys/{key} |
keys.sylphx.com/KeyVersion | key_versions | orgs/{org}/projects/{project}/envs/{env}/keys/{key}/key_versions/{key_version} |
localization.sylphx.com/Catalog | catalogs | orgs/{org}/projects/{project}/envs/{env}/catalogs/{catalog} |
localization.sylphx.com/CatalogEntry | entries | orgs/{org}/projects/{project}/envs/{env}/catalogs/{catalog}/entries/{entry} |
localization.sylphx.com/Glossary | glossaries | orgs/{org}/projects/{project}/envs/{env}/glossaries/{glossary} |
money.sylphx.com/CheckoutSession | checkout_sessions | orgs/{org}/projects/{project}/envs/{env}/checkout_sessions/{checkout_session} |
money.sylphx.com/CustomerSubscription | customer_subscriptions | orgs/{org}/projects/{project}/envs/{env}/customer_subscriptions/{customer_subscription} |
money.sylphx.com/EntitlementGrant | entitlement_grants | orgs/{org}/projects/{project}/envs/{env}/entitlement_grants/{entitlement_grant} |
money.sylphx.com/MerchantAccount | merchant_accounts | orgs/{org}/projects/{project}/envs/{env}/merchant_accounts/{merchant_account} |
money.sylphx.com/PortalSession | portal_sessions | orgs/{org}/projects/{project}/envs/{env}/portal_sessions/{portal_session} |
money.sylphx.com/PriceCatalog | price_catalogs | orgs/{org}/projects/{project}/envs/{env}/price_catalogs/{price_catalog} |
money.sylphx.com/StoreConnection | store_connections | orgs/{org}/projects/{project}/envs/{env}/store_connections/{store_connection} |
money.sylphx.com/StorePurchase | store_purchases | orgs/{org}/projects/{project}/envs/{env}/store_purchases/{store_purchase} |
network.sylphx.com/Certificate | certificates | orgs/{org}/projects/{project}/certificates/{certificate} |
network.sylphx.com/Domain | domains | orgs/{org}/projects/{project}/domains/{domain} |
network.sylphx.com/EgressIdentity | egress_identities | orgs/{org}/projects/{project}/egress_identities/{egress_identity} |
network.sylphx.com/PrivateLink | private_links | orgs/{org}/projects/{project}/envs/{env}/private_links/{private_link} |
network.sylphx.com/Route | routes | orgs/{org}/projects/{project}/envs/{env}/routes/{route} |
notify.sylphx.com/Broadcast | broadcasts | orgs/{org}/projects/{project}/envs/{env}/broadcasts/{broadcast} |
notify.sylphx.com/EmailDomain | mail_domains | orgs/{org}/projects/{project}/envs/{env}/mail_domains/{mail_domain} |
notify.sylphx.com/InboundEmail | inbound_emails | orgs/{org}/projects/{project}/envs/{env}/mailboxes/{mailbox}/inbound_emails/{inbound_email} |
notify.sylphx.com/InboxItem | inbox_items | orgs/{org}/projects/{project}/envs/{env}/recipients/{recipient}/inbox_items/{inbox_item} |
notify.sylphx.com/Mailbox | mailboxes | orgs/{org}/projects/{project}/envs/{env}/mailboxes/{mailbox} |
notify.sylphx.com/Message | messages | orgs/{org}/projects/{project}/envs/{env}/messages/{message} |
notify.sylphx.com/Preference | preferences | orgs/{org}/projects/{project}/envs/{env}/recipients/{recipient}/preferences/{preference} |
notify.sylphx.com/Recipient | recipients | orgs/{org}/projects/{project}/envs/{env}/recipients/{recipient} |
notify.sylphx.com/Route | mail_routes | orgs/{org}/projects/{project}/envs/{env}/mail_domains/{mail_domain}/mail_routes/{mail_route} |
notify.sylphx.com/Sender | senders | orgs/{org}/projects/{project}/envs/{env}/senders/{sender} |
notify.sylphx.com/Suppression | suppressions | orgs/{org}/projects/{project}/envs/{env}/suppressions/{suppression} |
notify.sylphx.com/Template | templates | orgs/{org}/projects/{project}/envs/{env}/templates/{template} |
observability.sylphx.com/ErrorEvent | error_events | orgs/{org}/projects/{project}/envs/{env}/error_groups/{error_group}/error_events/{error_event} |
observability.sylphx.com/ErrorGroup | error_groups | orgs/{org}/projects/{project}/envs/{env}/error_groups/{error_group} |
observability.sylphx.com/LogEntry | log_entries | orgs/{org}/projects/{project}/envs/{env}/log_entries/{log_entry} |
observability.sylphx.com/ScrubbingPolicy | scrubbing_policies | orgs/{org}/projects/{project}/envs/{env}/scrubbing_policies/{scrubbing_policy} |
observability.sylphx.com/SourceMap | source_maps | orgs/{org}/projects/{project}/envs/{env}/source_maps/{source_map} |
observability.sylphx.com/Trace | traces | orgs/{org}/projects/{project}/envs/{env}/traces/{trace} |
release.sylphx.com/Release | releases | orgs/{org}/projects/{project}/envs/{env}/releases/{release} |
release.sylphx.com/Rollout | rollouts | orgs/{org}/projects/{project}/envs/{env}/rollouts/{rollout} |
runners.sylphx.com/Runner | runners | orgs/{org}/scale_sets/{scale_set}/runners/{runner} |
runners.sylphx.com/ScaleSet | scale_sets | orgs/{org}/scale_sets/{scale_set} |
sandboxes.sylphx.com/Lease | leases | orgs/{org}/projects/{project}/envs/{env}/leases/{lease} |
sandboxes.sylphx.com/LeaseEvent | lease_events | orgs/{org}/projects/{project}/envs/{env}/leases/{lease}/lease_events/{lease_event} |
sandboxes.sylphx.com/Pool | pools | orgs/{org}/projects/{project}/envs/{env}/pools/{pool} |
sandboxes.sylphx.com/Shape | sandbox_shapes | sandbox_shapes/{shape} |
sandboxes.sylphx.com/Snapshot | snapshots | orgs/{org}/projects/{project}/envs/{env}/snapshots/{snapshot} |
sandboxes.sylphx.com/Volume | volumes | orgs/{org}/projects/{project}/envs/{env}/volumes/{volume} |
secrets.sylphx.com/Secret | secrets | orgs/{org}/projects/{project}/envs/{env}/secrets/{secret} |
secrets.sylphx.com/SecretBinding | secret_bindings | orgs/{org}/projects/{project}/envs/{env}/secret_bindings/{secret_binding} |
secrets.sylphx.com/SecretVersion | secret_versions | orgs/{org}/projects/{project}/envs/{env}/secrets/{secret}/secret_versions/{secret_version} |
workflows.sylphx.com/DistributedJob | distributed_jobs | orgs/{org}/projects/{project}/envs/{env}/distributed_jobs/{distributed_job} |
workflows.sylphx.com/DistributedRun | distributed_runs | orgs/{org}/projects/{project}/envs/{env}/distributed_jobs/{distributed_job}/distributed_runs/{distributed_run} |
workflows.sylphx.com/Job | jobs | orgs/{org}/projects/{project}/envs/{env}/jobs/{job} |
workflows.sylphx.com/JobRun | job_runs | orgs/{org}/projects/{project}/envs/{env}/jobs/{job}/job_runs/{job_run} |
workflows.sylphx.com/Run | runs | orgs/{org}/projects/{project}/envs/{env}/workflows/{workflow}/runs/{run} |
workflows.sylphx.com/Schedule | schedules | orgs/{org}/projects/{project}/envs/{env}/schedules/{schedule} |
workflows.sylphx.com/Workflow | workflows | orgs/{org}/projects/{project}/envs/{env}/workflows/{workflow} |
#Pagination
List methods take page_size (50 by default, at most 1000) and an opaque
page_token; the answer carries the items and, when there is more,
next_page_token. A token is bound to the parent, the filter, the ordering and
the caller, and reusing it otherwise is INVALID_ARGUMENT
(PAGE_TOKEN_MISMATCH). The paginated collections:
| Collection | List | Answer carries |
|---|---|---|
| orgs | list | orgs, next_page_token |
| projects | list | projects, next_page_token |
| envs | list | envs, next_page_token |
| api_keys | list | api_keys, next_page_token |
| ai_models | list | ai_models, next_page_token |
| artifacts | list | artifacts, next_page_token |
| assets | list | assets, next_page_token |
| end_users | list | end_users, next_page_token |
| sessions | list | sessions, next_page_token |
| customer_organizations | list | customer_organizations, next_page_token |
| memberships | list | memberships, next_page_token |
| organization_roles | list | organization_roles, next_page_token |
| invitations | list | invitations, next_page_token |
| email_domains | list | email_domains, next_page_token |
| oauth_clients | list | oauth_clients, next_page_token |
| meters | list | meters, next_page_token |
| plans | list | plans, next_page_token |
| billing_accounts | list | billing_accounts, next_page_token |
| invoices | list | invoices, next_page_token |
| usage_reports | list | usage_reports, next_page_token |
| budget_leases | list | budget_leases, next_page_token |
| trust_policies | list | trust_policies, next_page_token |
| builds | list | builds, next_page_token |
| build_caches | list | build_caches, next_page_token |
| config_flags | list | config_flags, next_page_token |
| config_segments | list | config_segments, next_page_token |
| config_changes | list | config_changes, next_page_token |
| connection_providers | list | connection_providers, next_page_token |
| connections | list | connections, next_page_token |
| databases | list | databases, next_page_token |
| kv_namespaces | list | kv_namespaces, next_page_token |
| buckets | list | buckets, next_page_token |
| search_indexes | list | search_indexes, next_page_token |
| entitlements | list | entitlements, next_page_token |
| topics | list | topics, next_page_token |
| events | list | events, next_page_token |
| connectors | list | connectors, next_page_token |
| subscriptions | list | subscriptions, next_page_token |
| queues | list | queues, next_page_token |
| webhook_endpoints | list | webhook_endpoints, next_page_token |
| webhook_deliveries | list | webhook_deliveries, next_page_token |
| inbound_endpoints | list | inbound_endpoints, next_page_token |
| realtime_channels | list | realtime_channels, next_page_token |
| realtime_messages | list | realtime_messages, next_page_token |
| realtime_members | list | realtime_members, next_page_token |
| services | list | services, next_page_token |
| service_rollouts | list | service_rollouts, next_page_token |
| previews | list | previews, next_page_token |
| source_links | list | source_links, next_page_token |
| keys | list | keys, next_page_token |
| key_versions | list | key_versions, next_page_token |
| catalogs | list | catalogs, next_page_token |
| entries | list | catalog_entries, next_page_token |
| glossaries | list | glossaries, next_page_token |
| store_connections | list | store_connections, next_page_token |
| store_purchases | list | store_purchases, next_page_token |
| customer_subscriptions | list | customer_subscriptions, next_page_token |
| entitlement_grants | list | entitlement_grants, next_page_token |
| merchant_accounts | list | merchant_accounts, next_page_token |
| domains | list | domains, next_page_token |
| certificates | list | certificates, next_page_token |
| routes | list | routes, next_page_token |
| egress_identities | list | egress_identities, next_page_token |
| private_links | list | private_links, next_page_token |
| mail_domains | list | email_domains, next_page_token |
| mail_routes | list | routes, next_page_token |
| senders | list | senders, next_page_token |
| recipients | list | recipients, next_page_token |
| preferences | list | preferences, next_page_token |
| suppressions | list | suppressions, next_page_token |
| templates | list | templates, next_page_token |
| messages | list | messages, next_page_token |
| mailboxes | list | mailboxes, next_page_token |
| inbound_emails | list | inbound_emails, next_page_token |
| inbox_items | list | inbox_items, next_page_token |
| broadcasts | list | broadcasts, next_page_token |
| error_groups | list | error_groups, next_page_token |
| error_events | list | error_events, next_page_token |
| source_maps | list | source_maps, next_page_token |
| releases | list | releases, next_page_token |
| rollouts | list | rollouts, next_page_token |
| scale_sets | list | scale_sets, next_page_token |
| runners | list | runners, next_page_token |
| sandbox_shapes | list | sandbox_shapes, next_page_token |
| pools | list | pools, next_page_token |
| leases | list | leases, next_page_token |
| lease_events | list | lease_events, next_page_token |
| volumes | list | volumes, next_page_token |
| snapshots | list | snapshots, next_page_token |
| secrets | list | secrets, next_page_token |
| secret_versions | list | secret_versions, next_page_token |
| secret_bindings | list | secret_bindings, next_page_token |
| workflows | list | workflows, next_page_token |
| schedules | list | schedules, next_page_token |
| runs | list | runs, next_page_token |
| jobs | list | jobs, next_page_token |
| job_runs | list | job_runs, next_page_token |
| distributed_jobs | list | distributed_jobs, next_page_token |
| distributed_runs | list | distributed_runs, next_page_token |
#Idempotency
Every mutating method accepts Idempotency-Key (1–255 printable ASCII). The
first call runs; a replay of the same request within 24 hours returns the stored
answer with Sylphx-Idempotent-Replay: true, a replay with a different body is
IDEMPOTENCY_KEY_REUSED (422), and a replay while the first call is still running
is IDEMPOTENCY_IN_PROGRESS (409), which is worth retrying.
287 of the 536 methods here have an effect other than read; 22 of them also take
validate_only=true (AIP-163), which runs every
check a write would run and then writes nothing.
Writes are also guarded by etags: Get answers with an ETag equal to
meta.etag, Update and Delete accept If-Match or etag
(AIP-154), and a mismatch is ETAG_MISMATCH
(409) with the current etag in the error's details, so a client re-reads and
retries.
#Errors
A failed call answers with one RFC 9457 problem body carrying a stable
code, whether the failure is retryable, and what it did to your data. The body
and the retry rules are in Errors; each method page here
lists the codes that method can return, and the 33 codes in the registry have a
page each in the index below.
#Versions
A request may pin the behaviour it was written against with
Sylphx-Version: YYYY-MM-DD; the response echoes the version that was applied.
The version stream is in API versions.
#Watch
Long-running work — a deploy, a database creation — is followed through the
resource API's streaming surface: a list or a detail view watches
GET /v1/{parent}/{collection}:watch as Server-Sent Events, and a reconnect
resumes from the SSE Last-Event-ID. The contracts do not declare a watch method
yet, so it is not part of this generated reference; a page here documents the
request/response surface only.
#Services
| Service | Stage | What it is | Collections |
|---|---|---|---|
| Sylphx Access | preview | Sylphx Access: orgs, projects, environments, and API keys. Access is the only writer of these types. | orgs, projects, envs, api_keys |
| Sylphx AI | preview | the Resource side of Sylphx AI: the model catalog. | ai_models |
| Sylphx Artifacts | preview · not available yet | Sylphx Artifacts: immutable content by digest, with its SBOM and provenance. Sylphx Build writes them; Release reads them. | artifacts |
| Sylphx Generated Assets | preview · not available yet | Sylphx Generated Assets: declare images in code, generate them once, lock them, and serve them from a CDN by content hash. An Asset holds a recipe and its variants; :generate makes what is missing, and :lock returns the assets.lock text a build commits. Generation happens only in these calls, never at build or run time. | assets |
| Sylphx Auth | preview | Sylphx Auth's management surface: sign-in for a customer's own users, their sessions, customer organizations, and OAuth clients. Sylphx orgs, members, principals, and keys are Sylphx Access, never Auth. End-user ceremonies (sign-in, recovery, OAuth authorize and token) are protocol endpoints, not Resource methods. | auth_configs, end_users, sessions, customer_organizations, memberships, organization_roles, invitations, email_domains, oauth_clients |
| Sylphx Billing | preview · not available yet | Sylphx Billing: the meter and plan catalog, each org's billing account and plan, its invoices, usage, and budget leases. Usage arrives through each service's spool, never through this API; no request path calls Billing. | meters, plans, billing_accounts, invoices, usage_reports, budget_leases |
| Sylphx Broker | preview · not available yet | the credential service: workload identity in, short-lived scoped provider credential out. | trust_policies |
| Sylphx Build | preview · not available yet | Sylphx Build: given a repository and a commit, an image with an SBOM and signed SLSA provenance, all written to Sylphx Artifacts by digest. | builds, build_caches |
| Sylphx Config | preview | Sylphx Config: dynamic configuration and feature flags evaluated in each cell from that cell's snapshot. | config_flags, config_segments, config_changes |
| Sylphx Connections | preview · not available yet | Sylphx Connections: Connection Providers and their installations as Resources. | connection_providers, connections |
| Sylphx Data | preview | DataPlaneService is the data plane of Sylphx Data: object bytes, key-value entries (strings, counters, hashes, lists, and sorted sets), and search documents in an environment's buckets, KV namespaces, and search indexes. It is served by Data itself at its origin, not by the Resource API, and is called with the environment's secret key (SYLPHX_API_KEY); the key's org, project, and environment are the tenant. Every call carries a new Sylphx-Effect-Id, which the SDK sends and reuses on retries. | objects, kv, documents, search, databases, kv_namespaces, buckets, search_indexes |
| Sylphx Entitlement | preview · not available yet | the read-only view of Sylphx Entitlement. Billing writes it through the Resource store; this service has no mutation. | entitlements |
| Sylphx Events | preview | Sylphx Events: the event bus, queues, outbound and inbound webhooks, and realtime channels. Publish, lease, ack, and delivery run in each cell from that cell's snapshot. | topics, events, connectors, subscriptions, queues, webhook_endpoints, webhook_deliveries, inbound_endpoints, realtime_channels, realtime_messages, realtime_members |
| Sylphx Hosting | preview · not available yet | Sylphx Hosting: Services that build from source or run an existing Artifact, ship as Releases in waves, get a Preview per pull request, and read their source through a SourceLink. | services, service_rollouts, previews, source_links |
| Sylphx Keys | preview · not available yet | Sylphx Keys: non-exportable keys on the regional signer. Callers use a key; no method returns key material. | keys, key_versions |
| Sylphx Localization | preview | Sylphx Localization: translate an app's strings in CI with AI, a translation memory, and a glossary. A Catalog holds the source messages and their translations; :sync translates what is new or changed, and :export returns the files per locale with a QA report. Translation happens only in these calls, never at build or run time. | catalogs, entries, glossaries |
| Sylphx Money | preview | Sylphx Money's customer payments: an app sells to its own users through the stores and processors Money integrates once, and asks one question on its request path, "does this subject have this feature". | price_catalogs, store_connections, store_purchases, customer_subscriptions, entitlement_grants, merchant_accounts, checkout_sessions, portal_sessions |
| Sylphx Network | preview · not available yet | Sylphx Network: verified domains, exact routes served by each cell's edge from its snapshot, certificates Sylphx terminates, declared egress addresses, and private links. | domains, certificates, routes, egress_identities, private_links |
| Sylphx Notify | preview | Sylphx Notify: messages to people over email, SMS, push, and in-app inbox, with preferences, suppression, templates, and broadcasts. Notify is built on Sylphx Events as an ordinary customer. | mail_domains, mail_routes, senders, recipients, preferences, suppressions, templates, messages, mailboxes, inbound_emails, inbox_items, broadcasts |
| Sylphx Observability | preview | Sylphx Observability's log, trace, and error surface: ingest through the emitter-side buffer, tenant-fenced bounded queries, and error-group triage. Observability is only ever a soft dependency. | log_entries, traces, error_groups, error_events, source_maps, scrubbing_policies |
| Sylphx Release | preview · not available yet | Sylphx Release: the only deployable unit and the progress of its rollouts. Releases are immutable; there is no Update or Delete. | releases, rollouts |
| Sylphx Runners | preview · not available yet | Sylphx Runners: CI runners of a class sylphx-<os>-<size>, one clean Sandboxes lease per job, registered as scale sets on a Sylphx Runners installation. Runners are read-only: GitHub matches jobs to runners, and Runners reports them. | scale_sets, runners |
| Sylphx Sandboxes | preview | Sylphx Sandboxes: isolated machines leased for a bounded time, granted immediately or refused with a typed reason, and destroyed before anyone else can touch them. Every agent-computer surface is here: exec and files, computer actions that map one-to-one onto the Anthropic computer tool and OpenAI computer-use actions and return the post-action screenshot in the same call, CDP, live streams, and human takeover. The streaming guest protocol (E2B envd) is served at status.endpoints.guest_uri. | sandbox_shapes, pools, leases, lease_events, volumes, snapshots |
| Sylphx Secrets | preview | Sylphx Secrets: write-only, versioned values and the bindings that deliver them. Reading a value back is the separate break-glass permission secrets:access. | secrets, secret_versions, secret_bindings |
| Sylphx Workflows | preview | Sylphx Workflows: durable execution, schedules, timers, and runs. Workflows is the one writer of these types. | workflows, schedules, runs, jobs, job_runs, distributed_jobs, distributed_runs |
#Service-level methods
A few calls belong to a service rather than to one of its collections, and have a page each:
| Method | HTTP | Scope | What it does |
|---|---|---|---|
access.whoami | GET | access:whoami | Returns the caller: the principal and the scope of the key or token that authenticated this request. Clients fill their org, project, and env defaults from it; every valid key may call it, whatever its scopes. |
#Error codes
Every code the platform declares, with the HTTP status a caller sees and the gRPC status the SDKs report.
| Code | HTTP | gRPC | What it means |
|---|---|---|---|
UNKNOWN_FIELD | 400 | INVALID_ARGUMENT | The request has a field the schema does not know. |
INVALID_FIELD | 400 | INVALID_ARGUMENT | A field failed validation. |
PAGE_TOKEN_MISMATCH | 400 | INVALID_ARGUMENT | A page token was reused with different parameters. |
IDEMPOTENCY_KEY_REUSED | 422 | INVALID_ARGUMENT | An Idempotency-Key was reused with another body. |
IDEMPOTENCY_IN_PROGRESS | 409 | ABORTED | The first call with this Idempotency-Key is still running. |
ETAG_MISMATCH | 409 | ABORTED | The etag sent does not match the Resource's current etag. |
RESOURCE_NOT_FOUND | 404 | NOT_FOUND | The named Resource does not exist or is not visible. |
RESOURCE_ALREADY_EXISTS | 409 | ALREADY_EXISTS | A Resource with this name exists. |
UNAUTHENTICATED | 401 | UNAUTHENTICATED | No valid key or token was presented. |
PERMISSION_DENIED | 403 | PERMISSION_DENIED | The key lacks the method's permission. |
DELETION_PROTECTED | 400 | FAILED_PRECONDITION | spec.deletion_protection blocks the delete. |
RECONCILE_FAILED | 400 | FAILED_PRECONDITION | The controller reported Stalled or Ready=FALSE. |
PLAN_LIMIT_REACHED | 402 | FAILED_PRECONDITION | The plan's limit is reached. |
SPEND_LIMIT_REACHED | 402 | FAILED_PRECONDITION | The org's spend limit is reached. |
RATE_LIMITED | 429 | RESOURCE_EXHAUSTED | The rate limit is reached; see Retry-After. |
INVALID_STATE | 400 | FAILED_PRECONDITION | The Resource is in a state that forbids the call. |
INTERNAL | 500 | INTERNAL | An internal fault; the cause is in Observability by request id. |
UNAVAILABLE | 503 | UNAVAILABLE | The Resource store, the owning service's backend, or the key verifier's snapshot is unavailable; retry after Retry-After. |
UNIMPLEMENTED | 501 | UNIMPLEMENTED | The path or method is not served (yet) at this version. |
NOT_YET_PROPAGATED | 401 | UNAUTHENTICATED | A key created seconds ago has not reached the cell serving this request yet; retry within active_after_ms. |
DEADLINE_EXCEEDED | 504 | DEADLINE_EXCEEDED | The client deadline passed before the work committed. |
NOT_FOUND | 404 | NOT_FOUND | No method is served at this path. |
CONTRACT_SKEW | 503 | UNAVAILABLE | The backend serves another contract image than the API endpoint for this service; the Release rolls them in order. |
NO_CAPACITY | 503 | UNAVAILABLE | No machine can be granted now (immediate-or-fail); retry after Retry-After. |
SHAPE_NOT_OFFERED | 422 | FAILED_PRECONDITION | The requested shape or kind is not sold. |
STALE_GENERATION | 409 | ABORTED | The call named a lease generation or control epoch that is no longer current. |
RESOURCE_IN_USE | 409 | FAILED_PRECONDITION | The Resource is attached to or held by another Resource, for example a volume attached to a running lease. |
CONTROL_HELD | 409 | FAILED_PRECONDITION | Another holder has input control of the display. |
CONTROL_HELD_BY_HUMAN | 409 | FAILED_PRECONDITION | A human has taken over the display; agent input and screenshots are refused until control is released or expires. |
INVALID_ID | 400 | INVALID_ARGUMENT | A name segment is not a current id, and no id map row moves it. |
ETAG_CONFLICT | 400 | INVALID_ARGUMENT | The If-Match header and the request's etag name different etags; send one, or the same. |
VALIDATE_ONLY_NOT_SUPPORTED | 400 | INVALID_ARGUMENT | The method has no dry run; a request with validate_only is refused before anything is written. |
ID_MOVED | 500 | 308 on GET/HEAD | 308 on GET/HEAD: the id in the name moved in the identifiers cut; Location and Sylphx-Moved-To carry the new one, and the body is {"error":"id_moved","old":…,"new":…}, for the 14-day window of the owning service. The Resource-API moved-id resolver answers it in front of every service. |