generated: '2026-08-17' method: derived source: openapi/_original/koyeb-openapi.json upstream_specification: https://api.prod.koyeb.com/public.swagger.json docs: https://www.koyeb.com/docs/reference/api summary: schemas_total: 422 entity_schemas_with_id: 39 operations_total: 177 relationships_resolved: 70 id_format: Opaque 32-character lowercase hex-ish string (no type prefix). Koyeb ids are NOT prefixed the way Stripe ids are, so an id alone does not identify its type. spine: - entity: App collection: /v1/apps key_operations: - ListApps - GetApp - CreateApp - UpdateApp - DeleteApp - PauseApp - ResumeApp docs: https://www.koyeb.com/docs/reference/apps schema_present: true - entity: Service collection: /v1/services key_operations: - ListServices - GetService - CreateService - UpdateService - DeleteService - PauseService - ResumeService docs: https://www.koyeb.com/docs/reference/services schema_present: true - entity: Deployment collection: /v1/deployments key_operations: - ListDeployments - GetDeployment - CancelDeployment docs: https://www.koyeb.com/docs/reference/deployments schema_present: true - entity: RegionalDeployment collection: /v1/regional_deployments key_operations: - ListRegionalDeployments - GetRegionalDeployment docs: null schema_present: true - entity: Instance collection: /v1/instances key_operations: - ListInstances - GetInstance docs: https://www.koyeb.com/docs/reference/instances schema_present: true - entity: Secret collection: /v1/secrets key_operations: - ListSecrets - GetSecret - CreateSecret - UpdateSecret - DeleteSecret - RevealSecret docs: https://www.koyeb.com/docs/reference/secrets schema_present: true - entity: Domain collection: /v1/domains key_operations: - ListDomains - GetDomain - CreateDomain - UpdateDomain - DeleteDomain - RefreshDomainStatus docs: https://www.koyeb.com/docs/run-and-scale/domains schema_present: true - entity: PersistentVolume collection: /v1/volumes key_operations: - ListPersistentVolumes - GetPersistentVolume - CreatePersistentVolume - UpdatePersistentVolume - DeletePersistentVolume docs: https://www.koyeb.com/docs/reference/volumes schema_present: true - entity: Snapshot collection: /v1/snapshots key_operations: - ListSnapshots - GetSnapshot - CreateSnapshot - DeleteSnapshot docs: https://www.koyeb.com/docs/reference/snapshots schema_present: true - entity: Organization collection: /v1/organizations key_operations: - GetOrganization - CreateOrganization - UpdateOrganization - DeleteOrganization - DeactivateOrganization - ReactivateOrganization docs: https://www.koyeb.com/docs/reference/organizations schema_present: true - entity: Project collection: /v1/projects key_operations: - ListProjects - GetProject - CreateProject - UpdateProject - DeleteProject docs: null schema_present: true - entity: Archive collection: /v1/archives key_operations: - CreateArchive docs: null schema_present: true - entity: Credential collection: /v1/credentials key_operations: - ListCredentials - GetCredential - CreateCredential - UpdateCredential - DeleteCredential docs: null schema_present: true - entity: User collection: /v1/account key_operations: - GetCurrentUser - UpdateUser docs: https://www.koyeb.com/docs/reference/accounts schema_present: true relationships: - from: Activity to: Object kind: has_one via: actor resolved: true - from: Activity to: Object kind: has_one via: object resolved: true - from: App to: Organization kind: belongs_to via: organization_id resolved: true - from: App to: Domain kind: has_many via: domains resolved: true - from: AppEvent to: Organization kind: belongs_to via: organization_id resolved: true - from: AppEvent to: App kind: belongs_to via: app_id resolved: true - from: Archive to: Organization kind: belongs_to via: organization_id resolved: true - from: Credential to: User kind: belongs_to via: user_id resolved: true - from: Credential to: Organization kind: belongs_to via: organization_id resolved: true - from: Deployment to: Organization kind: belongs_to via: organization_id resolved: true - from: Deployment to: Project kind: belongs_to via: project_id resolved: true - from: Deployment to: App kind: belongs_to via: app_id resolved: true - from: Deployment to: Service kind: belongs_to via: service_id resolved: true - from: Deployment to: InstanceSnapshot kind: belongs_to via: instance_snapshot_id resolved: true - from: DeploymentEvent to: Organization kind: belongs_to via: organization_id resolved: true - from: DeploymentEvent to: Deployment kind: belongs_to via: deployment_id resolved: true - from: Domain to: Organization kind: belongs_to via: organization_id resolved: true - from: Domain to: App kind: belongs_to via: app_id resolved: true - from: Domain to: Project kind: belongs_to via: project_id resolved: true - from: Instance to: Organization kind: belongs_to via: organization_id resolved: true - from: Instance to: App kind: belongs_to via: app_id resolved: true - from: Instance to: Service kind: belongs_to via: service_id resolved: true - from: Instance to: RegionalDeployment kind: belongs_to via: regional_deployment_id resolved: true - from: InstanceEvent to: Organization kind: belongs_to via: organization_id resolved: true - from: InstanceEvent to: Instance kind: belongs_to via: instance_id resolved: true - from: InstanceSnapshot to: Organization kind: belongs_to via: organization_id resolved: true - from: InstanceSnapshot to: Project kind: belongs_to via: project_id resolved: true - from: InstanceSnapshot to: Service kind: belongs_to via: service_id resolved: true - from: InstanceSnapshot to: Deployment kind: belongs_to via: deployment_id resolved: true - from: InstanceSnapshot to: RegionalDeployment kind: belongs_to via: regional_deployment_id resolved: true - from: InstanceSnapshot to: Instance kind: belongs_to via: instance_id resolved: true - from: InstanceSnapshotEvent to: Organization kind: belongs_to via: organization_id resolved: true - from: InstanceSnapshotEvent to: InstanceSnapshot kind: belongs_to via: instance_snapshot_id resolved: true - from: Notification to: Activity kind: has_one via: activity resolved: true - from: Organization to: Subscription kind: belongs_to via: subscription_id resolved: true - from: OrganizationInvitation to: Organization kind: belongs_to via: organization_id resolved: true - from: OrganizationInvitation to: PublicOrganization kind: has_one via: organization resolved: true - from: OrganizationInvitation to: PublicUser kind: has_one via: invitee resolved: true - from: OrganizationInvitation to: PublicUser kind: has_one via: inviter resolved: true - from: OrganizationMember to: Organization kind: belongs_to via: organization_id resolved: true - from: OrganizationMember to: User kind: belongs_to via: user_id resolved: true - from: OrganizationMember to: PublicUser kind: has_one via: user resolved: true - from: OrganizationMember to: PublicOrganization kind: has_one via: organization resolved: true - from: PaymentMethod to: Organization kind: belongs_to via: organization_id resolved: true - from: PersistentVolume to: Snapshot kind: belongs_to via: snapshot_id resolved: true - from: PersistentVolume to: Organization kind: belongs_to via: organization_id resolved: true - from: PersistentVolume to: Service kind: belongs_to via: service_id resolved: true - from: PersistentVolumeEvent to: Organization kind: belongs_to via: organization_id resolved: true - from: PersistentVolumeEvent to: PersistentVolume kind: belongs_to via: persistent_volume_id resolved: true - from: Project to: Organization kind: belongs_to via: organization_id resolved: true - from: RegionalDeployment to: Organization kind: belongs_to via: organization_id resolved: true - from: RegionalDeployment to: App kind: belongs_to via: app_id resolved: true - from: RegionalDeployment to: Service kind: belongs_to via: service_id resolved: true - from: RegionalDeployment to: InstanceSnapshot kind: belongs_to via: instance_snapshot_id resolved: true - from: RegionalDeployment to: Deployment kind: belongs_to via: deployment_id resolved: true - from: RegionalDeploymentEvent to: Organization kind: belongs_to via: organization_id resolved: true - from: RegionalDeploymentEvent to: RegionalDeployment kind: belongs_to via: regional_deployment_id resolved: true - from: Secret to: Organization kind: belongs_to via: organization_id resolved: true - from: Secret to: Project kind: belongs_to via: project_id resolved: true - from: Service to: Organization kind: belongs_to via: organization_id resolved: true - from: Service to: Project kind: belongs_to via: project_id resolved: true - from: Service to: App kind: belongs_to via: app_id resolved: true - from: ServiceEvent to: Organization kind: belongs_to via: organization_id resolved: true - from: ServiceEvent to: Service kind: belongs_to via: service_id resolved: true - from: Snapshot to: Organization kind: belongs_to via: organization_id resolved: true - from: Subscription to: Organization kind: belongs_to via: organization_id resolved: true - from: Token to: User kind: belongs_to via: user_id resolved: true - from: Token to: Organization kind: belongs_to via: organization_id resolved: true - from: User to: UserFlags kind: has_many via: flags resolved: true - from: UserSettings to: User kind: belongs_to via: user_id resolved: true notes: - 'Derived from Swagger 2.0 definitions: *_id fields become belongs_to edges, $ref arrays become has_many, $ref objects become has_one. Only edges whose target schema exists in the document are kept.' - The deployment hierarchy is App -> Service -> Deployment -> RegionalDeployment -> Instance; every level is addressable by id and filterable by its parent id on the matching List operation. - Reads and writes are organization-scoped through the token, not through a path segment, so the same id space is partitioned per organization.