@apollo-deploy/typescript-sdk
v3.1.15
Published
Apollo Deploy platform API specification
Downloads
1,773
Readme
Apollo Deploy API SDK
Apollo Deploy platform API specification
This SDK was automatically generated by Tesseract.
Installation
npm install @apollo-deploy/typescript-sdkQuick Start
import { createApolloDeployApiClient } from '@apollo-deploy/typescript-sdk';
const client = createApolloDeployApiClient({
baseUrl: 'https://api.apollodeploy.com',
});
const api = client.auth;Request Options
import { createApolloDeployApiClient } from '@apollo-deploy/typescript-sdk';
const client = createApolloDeployApiClient();
const result = await client.auth.authorizeOAuth2(
/* params */,
{
timeoutMs: 30_000,
headers: {
'X-Trace-Id': 'trace_123',
},
},
);API Reference
AuthAPI
OAuth2 and OpenID Connect endpoints
| Method | HTTP | Path | Description |
|--------|------|------|-------------|
| authorizeOAuth2 | GET | /auth/oauth2/authorize | Starts OAuth2 authorization code flow and redirects to login/consent when required. |
| consentOAuth2 | POST | /auth/oauth2/consent | Accepts or denies requested OAuth scopes and continues the authorization flow. |
| continueOAuth2 | POST | /auth/oauth2/continue | Continues login/signup/account-selection flow for OAuth authorization. |
| exchangeOAuth2Token | POST | /auth/oauth2/token | Issues access, refresh, and ID tokens for supported OAuth grant types. |
| introspectOAuth2Token | POST | /auth/oauth2/introspect | Validates and introspects an OAuth access or refresh token. |
| revokeOAuth2Token | POST | /auth/oauth2/revoke | Revokes an OAuth access or refresh token. |
| getOAuth2UserInfo | GET | /auth/oauth2/userinfo | Returns claims about the authenticated end-user from a valid OAuth access token. |
| endOAuth2Session | GET | /auth/oauth2/end-session | Ends an OpenID Connect session and optionally redirects to a post-logout URL. |
| createOAuth2Client | POST | /auth/oauth2/create-client | Creates a user-owned OAuth2 client. Admin only. |
| getOAuth2Client | GET | /auth/oauth2/get-client | Returns details for a single OAuth2 client. Admin only. |
| getOAuth2PublicClient | GET | /auth/oauth2/public-client | Returns public metadata for a specific OAuth2 client for login/consent UX. Admin only. |
| listOAuth2Clients | GET | /auth/oauth2/get-clients | Lists OAuth2 clients available to the authenticated principal. Admin only. |
| updateOAuth2Client | POST | /auth/oauth2/update-client | Updates metadata and settings for an OAuth2 client. Admin only. |
| rotateOAuth2ClientSecret | POST | /auth/oauth2/client/rotate-secret | Rotates a confidential OAuth2 client's secret. Admin only. |
| deleteOAuth2Client | POST | /auth/oauth2/delete-client | Deletes an OAuth2 client and associated grants. Admin only. |
| register | POST | /auth/register | Creates a BetterAuth user and returns the upstream service response, including any verification requirements. |
| login | POST | /auth/login | Authenticates a user with email/password and forwards BetterAuth session cookies to the client. |
| logout | POST | /auth/logout | Invalidates the current BetterAuth session and clears related cookies. |
| resendVerification | POST | /auth/resend-verification | Resends a verification email for the provided address if the account exists. |
| verifyEmail | POST | /auth/verify-email | Verifies a user's email address using the token from the verification email. On success, automatically signs in the user. |
| requestPasswordReset | POST | /auth/password/reset/request | Initiates a password reset email for the provided address. |
| confirmPasswordReset | POST | /auth/password/reset/confirm | Confirms a password reset by exchanging the reset token for a new password. |
| socialLogin | POST | /auth/social/login | Completes a social login exchange with BetterAuth using the provider authorization code. |
| getCurrentUser | GET | /auth/me | Returns the authenticated user's profile as resolved from the BetterAuth session. |
| getOnboardingStatus | GET | /auth/onboarding/check | Returns the authenticated user's onboarding status and required actions. Client uses this to determine next steps in the onboarding flow. |
| requestDeviceCode | POST | /auth/device/code | Initiates the OAuth 2.0 Device Authorization Grant (RFC 8628). The device receives a device_code and user_code, then displays the verification URI to the user. |
| pollDeviceToken | POST | /auth/device/token | Device polls this endpoint to receive an access token once the user has approved the authorization request. |
| getDeviceAuthorizationStatus | GET | /auth/device | Returns the current approval status of a device authorization request identified by its user_code. Used by the authorization UI to reflect the current state. |
| approveDeviceAuthorization | POST | /auth/device/approve | Approves a pending device authorization request. Requires the user to be authenticated. The bound access token will be issued on the device's next token poll. |
| denyDeviceAuthorization | POST | /auth/device/deny | Denies a pending device authorization request. Requires the user to be authenticated. |
SessionsAPI
User session management including listing, activation, and revocation
| Method | HTTP | Path | Description |
|--------|------|------|-------------|
| getCurrentSession | GET | /sessions/current | Retrieves the current active session with user information. Returns the session object directly without a data envelope. |
| listSessions | GET | /sessions/ | Lists all active sessions for the authenticated user across different devices. Returns a bare array without a data envelope. |
| revokeSession | DELETE | /sessions/${sessionToken} | Revokes a specific session by its token. Users can only revoke their own sessions. Returns a simple confirmation object. |
| revokeOtherSessions | DELETE | /sessions/others | Revokes all sessions except the current active session. Useful for securing an account if unauthorized access is suspected. Returns the count of revoked sessions. |
TeamsAPI
Team management including creation, membership, and role assignments
| Method | HTTP | Path | Description |
|--------|------|------|-------------|
| listTeams | GET | /teams/ | Returns all teams under the user's active organization. The organization is determined from the authenticated user's session. Requires viewer role or higher. |
| createTeam | POST | /teams/ | Creates a team for the user's active organization and returns the resulting team resource. The organization is determined from the authenticated user's session. Requires admin role or higher. |
| updateTeam | PATCH | /teams/${teamId} | Updates properties of an existing team, such as its name. The team must belong to the user's active organization. Requires admin role or higher. |
| deleteTeam | DELETE | /teams/${teamId} | Deletes the specified team after validating it belongs to the user's active organization. Requires admin role or higher. |
| setActiveTeam | POST | /teams/active | Stores the selected team identifier (or clears it) for the current user's session. |
| listTeamMembers | GET | /teams/${teamId}/members | Lists all members of the specified team. Requires member role or higher. |
| addTeamMember | POST | /teams/${teamId}/members | Adds a user to the specified team. Requires admin role or higher. |
| removeTeamMember | DELETE | /teams/${teamId}/members/${userId} | Removes a user from the specified team. Requires admin role or higher. |
OrgsAPI
Organization management including creation, membership, invitations, and role assignments
| Method | HTTP | Path | Description |
|--------|------|------|-------------|
| createOrganization | POST | /orgs/ | Creates an organization owned by the authenticated user, provisioning default metadata and plan settings.
v2.0.0 Migration Note: This endpoint now returns the OrganizationResponse object directly without a data wrapper. |
| listOrganizations | GET | /orgs/ | Returns all organizations the current user belongs to, ordered by most recent activity. |
| getActiveOrganization | GET | /orgs/active | Returns the organization marked as active for the user's current session, or 204 if none is selected. |
| setActiveOrganization | POST | /orgs/active | Sets the organization or slug as the active context for subsequent requests. |
| getOrganization | GET | /orgs/${orgId} | - |
| updateOrganization | PATCH | /orgs/${orgId} | - |
| deleteOrganization | DELETE | /orgs/${orgId} | - |
| listInvitations | GET | /orgs/invitations | - |
| listUserInvitations | GET | /orgs/invitations/pending | - |
| cancelInvitation | DELETE | /orgs/invitations/${invitationId} | - |
| rejectInvitation | POST | /orgs/invitations/${invitationId}/reject | - |
| inviteMember | POST | /orgs/invite | - |
| listMembers | GET | /orgs/members | - |
| removeMember | DELETE | /orgs/members/${memberId} | - |
| leaveOrganization | POST | /orgs/leave | - |
| updateMemberRole | POST | /orgs/members/role | - |
| getActiveMemberRole | GET | /orgs/members/role | - |
ApiKeysAPI
Organization-owned API key management
| Method | HTTP | Path | Description |
|--------|------|------|-------------|
| createApiKey | POST | /orgs/api-keys | Creates a new API key owned by the organization. The raw key value is returned only in this response — store it securely.
Requires the apiKey:create permission for the organization. |
| listApiKeys | GET | /orgs/api-keys | Returns all API keys owned by the organization. The raw key value is never included in list responses.
Use ?type=sdk to list SDK keys, or ?type=org (default) for org keys.
Requires the apiKey:read permission for the organization. |
| getApiKey | GET | /orgs/api-keys/${keyId} | Returns a single API key by ID. The raw key value is not included.
Use ?type=sdk if the key is an SDK key.
Requires the apiKey:read permission for the organization. |
| updateApiKey | PATCH | /orgs/api-keys/${keyId} | Updates the name, enabled status, or metadata of an organization API key.
Use ?type=sdk if the key is an SDK key.
Requires the apiKey:update permission for the organization. |
| deleteApiKey | DELETE | /orgs/api-keys/${keyId} | Permanently deletes an organization API key. This action cannot be undone.
Use ?type=sdk if the key is an SDK key.
Requires the apiKey:delete permission for the organization. |
SettingsAPI
Org-level policy settings and user-level personal preferences
| Method | HTTP | Path | Description |
|--------|------|------|-------------|
| getCombinedSettings | GET | /orgs/${orgId}/settings/all | - |
| listOrgSettings | GET | /orgs/${orgId}/settings | - |
| getSettingsRegistry | GET | /orgs/${orgId}/settings/registry | - |
| getOrgSetting | GET | /orgs/${orgId}/settings/${key} | - |
| resetOrgSetting | DELETE | /orgs/${orgId}/settings/${key} | - |
| bulkUpsertOrgSettings | PATCH | /orgs/${orgId}/settings | - |
| listUserSettings | GET | /users/me/settings | - |
| getUserSetting | GET | /users/me/settings/${key} | - |
| resetUserSetting | DELETE | /users/me/settings/${key} | - |
| bulkUpsertUserSettings | PATCH | /users/me/settings | - |
AppsAPI
Application management including creation, configuration, and releases
| Method | HTTP | Path | Description |
|--------|------|------|-------------|
| listApps | GET | /apps/ | Returns all applications associated with the authenticated user's organization, with optional team filtering and pagination support. |
| createApp | POST | /apps/ | Registers an application under the authenticated organization and verifies store credentials before creation. |
| getApp | GET | /apps/${appId} | Returns metadata, package identifiers, and current icon for the requested application. |
| updateApp | PATCH | /apps/${appId} | Updates mutable application fields such as name, packages, and icon URL. |
| deleteApp | DELETE | /apps/${appId} | Soft deletes an application and removes all associated data including artifacts and releases. Artifacts are also removed from storage. This action cannot be undone. |
| presignArtifactUpload | POST | /apps/${appId}/artifacts/presign | Creates a temporary presigned URL clients can use to upload release artifacts directly to storage. |
| completeArtifactUpload | POST | /apps/${appId}/artifacts/${artifactId}/complete | Finalizes an artifact after upload, validates metadata, and schedules background verification. |
| getSdkSetupStatus | GET | /apps/${appId}/setup/status | Returns the current SDK setup state (pending or confirmed) and the confirmation timestamp for the specified app. |
| confirmSdkSetup | POST | /apps/${appId}/setup/confirm | Marks the app SDK integration as confirmed. Accepts only SDK API keys (x-apollo-key: apollosdk_…). Idempotent — calling this on an already-confirmed app returns 200 without modifying the timestamp. |
| checkAndroidPackageRegistration | GET | /apps/android/package-registration | EXPERIMENTAL — Fetches all Android package names registered under the organisation and batch-checks each one against the Google Android Developer ID API. Google can alter or remove this API at any time without notice. A status of unable_to_verify means no conclusive answer was received and should be treated as inconclusive, not as proof that the package is unregistered. |
ReleasesAPI
Release lifecycle management scoped to applications, including pipelines and stage transitions
| Method | HTTP | Path | Description |
|--------|------|------|-------------|
| listAppReleases | GET | /apps/${appId}/releases | - |
| createAppRelease | POST | /apps/${appId}/releases | - |
| getAppRelease | GET | /apps/${appId}/releases/${releaseId} | - |
| updateAppRelease | PATCH | /apps/${appId}/releases/${releaseId} | - |
| submitAppRelease | POST | /apps/${appId}/releases/${releaseId}/submit | - |
| scheduleAppRelease | POST | /apps/${appId}/releases/${releaseId}/schedule | - |
| rollbackAppRelease | POST | /apps/${appId}/releases/${releaseId}/rollback | - |
| assignReleasePipeline | POST | /apps/${appId}/releases/${releaseId}/assign-pipeline | - |
| getReleaseStageState | GET | /apps/${appId}/releases/${releaseId}/stage | - |
| transitionReleaseStage | POST | /apps/${appId}/releases/${releaseId}/stage/transition | - |
RolloutsAPI
Health-gated rollout orchestration for application releases
| Method | HTTP | Path | Description |
|--------|------|------|-------------|
| createAppRollout | POST | /apps/${appId}/rollouts | - |
| listAppRollouts | GET | /apps/${appId}/rollouts | - |
| getAppRollout | GET | /apps/${appId}/rollouts/${rolloutId} | - |
| pauseAppRollout | POST | /apps/${appId}/rollouts/${rolloutId}/pause | - |
| resumeAppRollout | POST | /apps/${appId}/rollouts/${rolloutId}/resume | - |
| rollbackAppRolloutFlow | POST | /apps/${appId}/rollouts/${rolloutId}/rollback | - |
| advanceAppRollout | POST | /apps/${appId}/rollouts/${rolloutId}/advance | - |
ReleasePipelinesAPI
Release pipeline configuration and stage transition APIs
| Method | HTTP | Path | Description |
|--------|------|------|-------------|
| listReleasePipelines | GET | /apps/${appId}/release-pipelines | - |
| createReleasePipeline | POST | /apps/${appId}/release-pipelines | - |
| getReleasePipeline | GET | /apps/${appId}/release-pipelines/${pipelineId} | - |
| listReleasePipelineVersions | GET | /apps/${appId}/release-pipelines/${pipelineId}/versions | - |
| updateReleasePipeline | PATCH | /apps/${appId}/release-pipelines/${pipelineId} | - |
| setDefaultReleasePipeline | POST | /apps/${appId}/release-pipelines/${pipelineId}/set-default | - |
| deleteReleasePipeline | DELETE | /apps/${appId}/release-pipelines/${pipelineId} | - |
| validateReleasePipeline | POST | /apps/${appId}/release-pipelines/${pipelineId}/validate | - |
ArtifactsAPI
Artifact management operations including upload, download, verification, and comparison
| Method | HTTP | Path | Description |
|--------|------|------|-------------|
| verifyArtifact | POST | /apps/${appId}/artifacts/${artifactId}/verify | Marks an artifact as verified by setting verified_at and verified_by fields. Only verified artifacts can be used in releases. |
| getBatchUploadStatus | GET | /apps/artifacts/status | Returns the current status of multiple artifact uploads. Pass artifact IDs as comma-separated query parameter. |
| getUploadStatus | GET | /apps/artifacts/${artifactId}/status | Returns the current status of a single artifact upload including progress stage and any error messages. |
| getArtifact | GET | /apps/artifacts/${artifactId} | Returns detailed information about a specific artifact with build maturity score and release delta. |
| downloadArtifact | GET | /apps/artifacts/${artifactId}/download | Streams the artifact binary file directly. The response includes Content-Disposition header to trigger browser download with the original filename. |
| cancelArtifact | POST | /apps/artifacts/${artifactId}/cancel | Cancels in-progress artifact upload and cleans up partial files from R2. |
| archiveArtifact | POST | /apps/artifacts/${artifactId}/archive | Marks artifact as archived without physical deletion. |
| compareArtifacts | GET | /apps/artifacts/compare | Compares two APK artifacts and returns size differences, added/removed/modified files, and category breakdown. |
| prepareUpload | POST | /apps/artifacts/prepare | Validates files and returns presigned URLs for direct-to-R2 upload. The owning app is resolved automatically from the artifact's package identifier during finalization. |
| finalizeUpload | POST | /apps/artifacts/finalize | Verifies files exist in R2, extracts metadata, and creates the artifact record. The owning app is resolved automatically from the artifact's package identifier. |
| listArtifacts | GET | /apps/artifacts/ | Returns paginated list of artifacts in the authenticated user's organization. Use appId query param to filter by app. |
AnalyticsAPI
Release analytics dashboard endpoints backed by signals and telemetry data
| Method | HTTP | Path | Description |
|--------|------|------|-------------|
| getAnalyticsGlobal | GET | /analytics/global | - |
| getAnalyticsOverview | GET | /analytics/overview | - |
| getAnalyticsTrends | GET | /analytics/trends | - |
| listAnalyticsReleases | GET | /analytics/releases | - |
| getAnalyticsRelease | GET | /analytics/releases/${releaseId} | - |
| getAnalyticsBenchmarks | GET | /analytics/benchmarks | - |
| listAnalyticsAppLeaderboard | GET | /analytics/leaderboard/apps | - |
| listAnalyticsReleaseLeaderboard | GET | /analytics/leaderboard/releases | - |
| getAnalyticsReleaseEffectiveness | GET | /analytics/release-effectiveness | - |
| getAnalyticsOutcomes | GET | /analytics/outcomes | - |
| getAnalyticsEnvironments | GET | /analytics/environments | - |
| getAnalyticsAdoption | GET | /analytics/adoption | - |
| getAnalyticsPortfolioRisk | GET | /analytics/portfolio/risk | - |
| getAnalyticsRegions | GET | /analytics/regions | - |
| getAnalyticsRegionImpact | GET | /analytics/regions/impact | - |
| getAnalyticsDataQuality | GET | /analytics/data-quality | - |
| getAnalyticsRoi | GET | /analytics/roi | - |
| getAnalyticsRoiDrivers | GET | /analytics/roi/drivers | - |
| getAnalyticsProjections | GET | /analytics/projections | - |
| getAnalyticsAppCohorts | GET | /analytics/cohorts/apps | - |
| getAnalyticsExecutiveSummary | GET | /analytics/executive-summary | - |
| exportAnalyticsOverview | GET | /analytics/export/overview | - |
| exportAnalyticsReleases | GET | /analytics/export/releases | - |
| exportAnalyticsRoi | GET | /analytics/export/roi | - |
BillingAPI
Billing and subscription management including checkout, orders, and entitlements
| Method | HTTP | Path | Description |
|--------|------|------|-------------|
| getBillingOverview | GET | /billing/overview | Returns complete billing information for the authenticated organization. |
| getEntitlements | GET | /billing/entitlements | Returns entitlements for the authenticated organization. |
| cancelSubscription | POST | /billing/subscriptions/cancel | Cancels the subscription at the end of the current billing period.
|
| getBillingPortal | GET | /billing/portal | Returns a URL to redirect the user to Polar's customer portal. |
| updateBillingEmail | PATCH | /billing/email | Updates the organization's billing email address. |
| createCheckoutSession | POST | /billing/checkout | Creates a Polar checkout session for the specified product |
| listOrders | GET | /billing/orders | Returns a paginated list of orders for the authenticated organization. |
| getOrder | GET | /billing/orders/${orderId} | Returns complete order information for a specific order. |
ShareLinksAPI
Share link management for artifact distribution including creation, analytics, and GDPR compliance
| Method | HTTP | Path | Description |
|--------|------|------|-------------|
| createShareLink | POST | /share-links/ | Creates a new share link for an artifact. |
| listShareLinks | GET | /share-links/ | Returns a paginated list of share links. |
| getShareLink | GET | /share-links/${shareLinkId} | Returns details for a specific share link. |
| updateShareLink | PATCH | /share-links/${shareLinkId} | Updates share link configuration. |
| revokeShareLink | POST | /share-links/${shareLinkId}/revoke | Immediately disables a share link. |
| deleteShareLink | DELETE | /share-links/${shareLinkId} | Soft deletes a share link. |
| restoreShareLink | POST | /share-links/${shareLinkId}/restore | Restores a previously deleted share link. |
| getShareLinkAnalytics | GET | /share-links/${shareLinkId}/analytics | Returns download analytics for a share link. |
| getShareLinkDownloads | GET | /share-links/${shareLinkId}/downloads | Returns download history for a share link. |
| bulkRevokeShareLinks | POST | /share-links/bulk/revoke | Revokes multiple share links. |
| bulkExtendShareLinks | POST | /share-links/bulk/extend | Extends expiration for multiple share links. |
| exportGdprData | POST | /share-links/gdpr/export | Exports all download events associated with a verified email address. Used for GDPR data subject access requests. |
| deleteGdprData | POST | /share-links/gdpr/delete | Deletes all download events associated with a verified email address. Used for GDPR right to erasure requests. |
| rectifyGdprData | PATCH | /share-links/gdpr/rectify | Updates the verified_email field in all download events from old email to new email. Used for GDPR right to rectification requests. |
| getPublicShareLinkInfo | GET | /s/${shortCode} | Returns share link details and access requirements. |
| getPublicShareLinkMetadata | GET | /s/${shortCode}/metadata | Returns safe metadata for link previews. |
| validateShareLinkAccess | POST | /s/${shortCode}/validate | Validates access credentials for a share link. |
| requestShareLinkOtp | POST | /s/${shortCode}/request-otp | Sends an OTP for email verification. |
| verifyShareLinkOtp | POST | /s/${shortCode}/verify-otp | Verifies an email OTP. |
| downloadViaShareLink | POST | /s/${shortCode}/download | Validates access and returns a signed download URL. |
ApprovalsAPI
Approval requests for release gating
| Method | HTTP | Path | Description |
|--------|------|------|-------------|
| createRequest | POST | /approvals/ | - |
| listByResource | GET | /approvals/ | - |
| listRequests | GET | /approvals/requests | - |
| grantApprover | POST | /approvals/approvers | - |
| listApprovers | GET | /approvals/approvers | - |
| listGrants | GET | /approvals/grants | - |
| revokeGrant | POST | /approvals/grants/${id}/revoke | - |
| extendGrant | POST | /approvals/grants/${id}/extend | - |
| listTemplates | GET | /approvals/templates | - |
| createTemplate | POST | /approvals/templates | - |
| updateTemplate | PATCH | /approvals/templates/${id} | - |
| archiveTemplate | POST | /approvals/templates/${id}/archive | - |
| listTemplateDefaults | GET | /approvals/template-defaults | - |
| upsertTemplateDefault | PUT | /approvals/template-defaults/${actionType}/${riskLevel} | - |
| getRequest | GET | /approvals/${id} | - |
| recordDecision | POST | /approvals/${id}/decisions | - |
| cancelRequest | POST | /approvals/${id}/cancel | - |
| archiveRequest | POST | /approvals/${id}/archive | - |
| refreshRequest | POST | /approvals/${id}/refresh | - |
WaitlistAPI
Waitlist signup for upcoming products and features
| Method | HTTP | Path | Description |
|--------|------|------|-------------|
| signup | POST | /waitlist/ | Allows visitors to sign up for a product waitlist. Returns confirmation with isNewSignup flag indicating if this was a new signup or existing entry. |
| getCount | GET | /waitlist/${productId}/count | Returns the count of waitlist entries for a specific product ID. |
AuditLogsAPI
Audit log access including activity summaries, security insights, and compliance exports
| Method | HTTP | Path | Description |
|--------|------|------|-------------|
| getActivitySummary | GET | /audit-logs/summary | Returns aggregated activity statistics for the user's active organization. |
| getSecurityInsights | GET | /audit-logs/security | Returns security-focused analytics and anomaly detection for the user's active organization. |
| getUserActivityTimeline | GET | /audit-logs/users/${userId}/timeline | Returns detailed activity timeline for a specific user within the user's active organization. |
| getResourceHistory | GET | /audit-logs/resources/${resourceType}/${resourceId}/history | Returns complete change history for a specific resource within the user's active organization. |
| listAuditLogs | GET | /audit-logs/ | Returns a paginated list of audit logs for the user's active organization with comprehensive filtering. |
| getAuditLog | GET | /audit-logs/${id} | Returns detailed information about a specific audit log entry that belongs to the user's active organization. |
| exportAuditLogs | POST | /audit-logs/export | Exports audit logs in JSON or CSV format for compliance reporting for the user's active organization. |
IntegrationsAPI
Connect third-party services, drive app settings from connection/org/app config surfaces, and handle OAuth and credential flows.
| Method | HTTP | Path | Description |
|--------|------|------|-------------|
| createGithubWebhook | POST | /integrations/integrations/github/webhook | - |
| listAvailableIntegrations | GET | /integrations/available | Returns installable integrations and organisation-level setup surfaces for the authenticated organisation marketplace. |
| listAppSurfaces | GET | /integrations/apps/${appId}/integrations | Returns app-scoped integration UI surfaces for installed integrations whose organisation-level setup is complete. |
| listFieldChoicesSurface | GET | /integrations/apps/${appId}/integrations/${integrationKey}/${surface}/fields/${fieldName}/choices | Returns the next page of choices for a select or multiselect field on the app integration UI surface. |
| installIntegration | POST | /integrations/install | Installs a third-party integration for the authenticated organisation. |
| uninstallIntegration | DELETE | /integrations/${integrationKey} | Uninstalls a third-party integration and revokes all associated connections. |
| initiateOAuth | POST | /integrations/oauth/init | Returns an OAuth authorisation URL to redirect the user to. |
| completeOAuth | POST | /integrations/oauth/callback | Exchanges the authorisation code for tokens and stores the connection. |
| revokeConnection | DELETE | /integrations/connections/${connectionId} | Revokes a specific OAuth connection and disables associated app configs. |
| submitIntegrationCredentials | POST | /integrations/credentials/submit | Submits API credentials for a credential-form integration (e.g. Apple App Store Connect, Google Play). Validates the credentials with the provider and creates a connected account. |
| createIntegrationConfig | POST | /integrations/configs | Creates either an organisation-scoped or app-scoped integration config based on the request scope. |
| updateIntegrationConfig | PATCH | /integrations/configs/${configId} | Updates either an organisation-scoped or app-scoped integration config based on the request scope. |
| deleteAppIntegrationConfig | DELETE | /integrations/apps/${appId}/configs/${configId} | Removes an integration configuration from an app. |
WebhooksAPI
Inbound and outbound webhook management
| Method | HTTP | Path | Description |
|--------|------|------|-------------|
| receiveExternalProvider | POST | /webhooks/${endpointId} | - |
| webhookHealthCheck | GET | /webhooks/inbound/health | - |
| listEndpoints | GET | /webhooks/endpoints | - |
| createEndpoint | POST | /webhooks/endpoints | - |
| getEndpoint | GET | /webhooks/endpoints/${id} | - |
| updateEndpoint | PATCH | /webhooks/endpoints/${id} | - |
| deleteEndpoint | DELETE | /webhooks/endpoints/${id} | - |
| listPayloads | GET | /webhooks/endpoints/${id}/payloads | - |
| listSubscriptions | GET | /webhooks/subscriptions | - |
| createSubscription | POST | /webhooks/subscriptions | - |
| getSubscription | GET | /webhooks/subscriptions/${id} | - |
| updateSubscription | PATCH | /webhooks/subscriptions/${id} | - |
| deleteSubscription | DELETE | /webhooks/subscriptions/${id} | - |
| testSubscription | POST | /webhooks/subscriptions/${id}/test | - |
| listDeliveries | GET | /webhooks/subscriptions/${id}/deliveries | - |
| replayDelivery | POST | /webhooks/deliveries/${id}/replay | - |
SignalsAPI
Release health signals: aggregation, anomaly detection, gate evaluation, and rollout annotations
| Method | HTTP | Path | Description |
|--------|------|------|-------------|
| getAppSignals | GET | /signals/${appId} | Returns the latest materialized release health snapshot, freshly computed if stale. When releaseId is omitted from the query string, the latest live release (by published_at) is used. All pipeline and gate decisions should consume this endpoint rather than querying providers directly. |
| getAppSignalsHistory | GET | /signals/${appId}/history | - |
| compareReleaseSignals | GET | /signals/compare | - |
| evaluateSignalGate | POST | /signals/${appId}/evaluate | Evaluates one or more gate conditions against the latest health snapshot metrics. Supports absolute operators (lt/gt/eq) and baseline-relative operators (deviation_lt/deviation_gt). |
| annotateReleaseSignal | POST | /signals/${appId}/annotate | Records a rollout lifecycle event (percentage change, stage transition, pause, rollback) as an annotation on the signal timeline. Used by the correlation engine for changepoint analysis. |
| getAppSignalBaselines | GET | /signals/${appId}/baselines | Returns stored metric baselines (mean, stdDev, sample count) for an app/environment combination. Baselines are computed by the background aggregation worker and are used for anomaly detection thresholds. |
| getAppRolloutEvents | GET | /signals/${appId}/rollout-events | Returns rollout event annotations (percentage changes, stage transitions, pauses, rollbacks) for a release, ordered by timestamp descending. Used by the dashboard rollout timeline. |
| actOnRecommendation | POST | /signals/${appId}/recommendations/${recommendationId}/act | Records that a recommendation was executed, dismissed, or snoozed. The action is persisted as an audit trail and does not modify the underlying snapshot. |
| acknowledgeIncident | POST | /signals/${appId}/incidents/${incidentId}/acknowledge | Records that an incident has been acknowledged by a team member. The acknowledgement is persisted as an audit trail with an optional note. |
| streamReleaseSignals | GET | /signals/${appId}/stream | Opens a Server-Sent Events connection that receives real-time signal updates as background snapshots are computed. Events: signal.update, signal.critical, signal.recovered. |
TelemetryAPI
Device and application telemetry ingestion: install stats, active users, dependency manifests
| Method | HTTP | Path | Description |
|--------|------|------|-------------|
| reportTelemetry | POST | /telemetry/${appId}/report | Accepts install count, active user heartbeats, and device metrics from apps. Data is split into per-device heartbeats and per-app stats. Requires an SDK API key (x-apollo-key, apollosdk_ prefix) with telemetry:write permission. |
| reportTelemetryDependencies | POST | /telemetry/${appId}/dependencies | Accepts a resolved dependency manifest collected at build time by the Apollo Deploy Gradle plugin, runtime SDK, or CI agent. Used for supply-chain analysis. Requires an SDK API key (x-apollo-key, apollosdk_ prefix) with telemetry:write permission. |
| getLatestTelemetry | GET | /telemetry/${appId}/latest | Returns the most recent app stats for the given app. Optionally filter by device type or platform. Requires an SDK API key (x-apollo-key, apollosdk_ prefix) with telemetry:read permission. |
Types
OAuth2AuthorizeQueryOAuth2AuthorizationRedirectResponseOAuth2ConsentRequestOAuth2ConsentRedirectResponseOAuth2ContinueRequestOAuth2ContinueRedirectResponseOAuth2TokenRequestOAuth2TokenResponseOAuth2IntrospectRequestOAuth2IntrospectResponseOAuth2RevokeRequestOAuth2RevokeResponseOAuth2UserInfoResponseOAuth2EndSessionQueryOAuth2EndSessionResponseOAuth2CreateClientRequestOAuth2ClientResponseOAuth2GetClientQueryOAuth2ClientListResponseOAuth2UpdateClientRequestOAuth2RotateClientSecretRequestOAuth2DeleteClientRequestRegisterInputRegisterResponseErrorResponseLoginInputLoginResponseLogoutResponseResendVerificationInputMessageResponseVerifyEmailTokenInputVerifyEmailResponsePasswordResetRequestInputPasswordResetTokenInputSocialLoginInputSocialLoginResponseCurrentUserResponseOnboardingCheckResponseDeviceCodeRequestDeviceCodeResponseDeviceTokenRequestDeviceTokenResponseDeviceAuthorizationStatusQueryDeviceAuthorizationStatusResponseDeviceAuthorizationDecisionInputDeviceAuthorizationDecisionResponseSessionResponseSessionListSessionTokenParamRevokeResponseRevokeOthersResponseTeamListResponseCreateTeamInputTeamResponseTeamIdParamUpdateTeamInputNoContentSetActiveTeamInputTeamMembersListResponseTeamMemberCreateInputTeamMemberIdParamOrgCreateInputOrganizationResponseOrganizationListResponseSetActiveOrganizationInputOrgIdParamUpdateOrganizationInputOrgInvitationListResponseUserInvitationsQueryOrgInvitationCancelIdParamInvitationIdParamInviteMemberInputOrgMemberListResponseOrgMemberIdParamUpdateRoleInputActiveMemberRoleQueryActiveMemberRoleResponseCreateApiKeyBodyApiKeyCreatedResponseApiKeyTypeQueryApiKeyListResponseApiKeyItemParamsApiKeyResponseUpdateApiKeyBodyOrgSettingParamsCombinedSettingsResponseListSettingsQuerySettingsListResponseSettingsRegistryResponseSettingResponseBulkUpsertSettingsBodyBulkUpsertResponseSettingKeyParamAppListQueryAppListEnvelopeAppCreateInputAppCreateResponseArtifactsAppIdParamAppResponseAppUpdateInputArtifactPresignInputPresignResponseArtifactsAppArtifactIdParamArtifactCompleteInputArtifactResponseReleaseAppIdParamReleaseListQueryReleaseListEnvelopeReleaseCreateInputReleaseResponseAppReleaseIdParamReleaseUpdateInputReleaseScheduleInputReleaseAssignPipelineInputReleaseStageStateResponseReleaseStageTransitionInputRolloutAppIdParamCreateRolloutBodyRolloutDetailResponseListRolloutsQueryRolloutListResponseAppRolloutIdParamPauseRolloutBodyResumeRolloutBodyRollbackRolloutBodyAdvanceRolloutBodyReleasePipelineListResponseReleasePipelineCreateInputReleasePipelineResponseReleasePipelineIdParamReleasePipelineVersionsResponseReleasePipelineUpdateInputReleasePipelineValidationResponseBatchUploadStatusQueryBatchUploadStatusResponseArtifactIdParamUploadStatusResponseEnhancedArtifactResponseCompareArtifactsQueryCompareArtifactsResponsePrepareUploadInputPrepareUploadResponseFinalizeUploadInputFinalizeUploadResponseListArtifactsQueryArtifactListResponseAnalyticsGlobalQueryAnalyticsGlobalResponseOverviewQueryOverviewResponseAnalyticsTrendsQueryAnalyticsTrendsResponseAnalyticsReleasesQueryAnalyticsReleasesResponseAnalyticsReleaseParamsAnalyticsReleaseDetailQueryAnalyticsReleaseDetailResponseAnalyticsBenchmarksQueryAnalyticsBenchmarksResponseAnalyticsLeaderboardAppsQueryAnalyticsLeaderboardAppsResponseAnalyticsLeaderboardReleasesQueryAnalyticsLeaderboardReleasesResponseAnalyticsReleaseEffectivenessQueryAnalyticsReleaseEffectivenessResponseAnalyticsOutcomesQueryAnalyticsOutcomesResponseAnalyticsEnvironmentsQueryAnalyticsEnvironmentsResponseAnalyticsAdoptionQueryAnalyticsAdoptionResponseAnalyticsPortfolioRiskQueryAnalyticsPortfolioRiskResponseAnalyticsRegionsQueryAnalyticsRegionsResponseAnalyticsRegionsImpactQueryAnalyticsRegionsImpactResponseAnalyticsDataQualityQueryAnalyticsDataQualityResponseAnalyticsRoiQueryAnalyticsRoiResponseAnalyticsRoiDriversQueryAnalyticsRoiDriversResponseAnalyticsProjectionsQueryAnalyticsProjectionsResponseAnalyticsCohortsAppsQueryAnalyticsCohortsAppsResponseAnalyticsExecutiveSummaryQueryAnalyticsExecutiveSummaryResponseAnalyticsExportOverviewQueryAnalyticsExportReleasesQueryAnalyticsExportRoiQueryBillingOverviewResponseEntitlementsResponseCancelSubscriptionInputCancelSubscriptionResponsePortalInputPortalResponseUpdateBillingEmailInputUpdateBillingEmailResponseCreateCheckoutSessionInputCreateCheckoutSessionResponseOrderListQueryOrderListResponseOrderIdParamOrderResponseCreateShareLinkInputShareLinkResponseListShareLinksQueryShareLinkListResponseShareLinkIdParamUpdateShareLinkInputEmptySuccessDownloadAnalyticsResponseDownloadHistoryQueryDownloadEventListResponseBulkRevokeInputBulkOperationResultBulkExtendExpirationInputGdprExportInputGdprExportResponseGdprDeleteInputGdprDeleteResponseGdprRectifyInputGdprRectifyResponseShortCodeParamPublicShareLinkInfoResponsePublicMetadataResponseAccessCredentialsInputValidationResultResponseSendOtpInputOtpResultResponseVerifyOtpInputOptionalAccessCredentialsInputDownloadUrlResponseCreateApprovalRequestInputCreateApprovalRequestResponseListApprovalsQueryApprovalListResponseListApprovalRequestsQueryApprovalRequestsListResponseCreateApproverGrantInputCreateApproverGrantResponseListApproversQueryListApproversResponseListApprovalGrantsQueryListApprovalGrantsResponseApprovalGrantIdParamRevokeApprovalGrantInputRevokeApprovalGrantResponseExtendApprovalGrantInputExtendApprovalGrantResponseListApprovalTemplatesQueryListApprovalTemplatesResponseCreateApprovalTemplateInputCreateApprovalTemplateResponseApprovalTemplateIdParamUpdateApprovalTemplateInputUpdateApprovalTemplateResponseArchiveApprovalTemplateInputArchiveApprovalTemplateResponseListApprovalTemplateDefaultsQueryListApprovalTemplateDefaultsResponseApprovalTemplateDefaultParamUpsertApprovalTemplateDefaultInputUpsertApprovalTemplateDefaultResponseApprovalIdParamApprovalRequestWithDetailsResponseRecordApprovalDecisionInputRecordApprovalDecisionResponseCancelApprovalRequestInputRefreshApprovalRequestInputWaitlistSignupInputWaitlistSignupResponseWaitlistCountParamsWaitlistCountResponseDateRangeQueryActivitySummaryResponseSecurityInsightsResponseAdminUserIdParamUserActivityTimelineResponseResourceParamsResourceHistoryQueryResourceHistoryResponseAuditLogFilterQueryAuditLogListResponseAuditLogIdParamAuditLogResponseAuditLogExportInputIntegrationsListAvailableQueryIntegrationsListAvailableResponseIntegrationsAppIdParamIntegrationsAppIntegrationListResponseIntegrationsAppIntegrationFieldChoicesParamsIntegrationsAppIntegrationFieldChoicesQueryIntegrationsFieldChoicesResponseIntegrationsInstallBodyIntegrationsInstallResponseIntegrationsKeyParamIntegrationsUninstallResponseIntegrationsOAuthInitBodyIntegrationsOAuthInitResponseIntegrationsOAuthCallbackBodyIntegrationsOAuthCallbackResponseIntegrationsConnectionIdParamIntegrationsRevokeConnectionResponseIntegrationsCredentialSubmitBodyIntegrationsCredentialSubmitResponseIntegrationsCreateConfigBodyIntegrationsConfigMutationResponseIntegrationsConfigIdParamIntegrationsUpdateConfigBodyIntegrationsDeleteConfigResponseIncomingWebhookResponseSuccessResponseWebhookEndpointListQueryWebhookEndpointListResponseCreateWebhookEndpointInputWebhookEndpointResponseWebhookEndpointIdParamUpdateWebhookEndpointInputWebhookPayloadListQueryWebhookPayloadListResponseWebhookSubscriptionListQueryWebhookSubscriptionListResponseCreateWebhookSubscriptionInputWebhookSubscriptionResponseWebhookSubscriptionIdParamUpdateWebhookSubscriptionInputTestWebhookResponseWebhookDeliveryListQueryWebhookDeliveryListResponseWebhookDeliveryIdParamReplayWebhookResponseSignalsAppIdParamGetSignalsQuerySignalsResponseGetSignalsHistoryQuerySignalsHistoryResponseCompareSignalsQuerySignalsCompareResponseEvaluateGateBodyGateEvaluationResponseAnnotateEventBodyAnnotateEventResponseGetBaselinesQueryBaselinesResponseGetRolloutEventsQueryRolloutEventsResponseRecommendationActionParamsActOnRecommendationBodyRecommendationActionResponseIncidentAcknowledgeParamsAcknowledgeIncidentBodyIncidentAcknowledgementResponseSignalStreamEventTelemetryAppIdParamTelemetryReportBodyTelemetryReportResponseTelemetryDependenciesBodyTelemetryDependenciesResponseGetLatestTelemetryQueryLatestTelemetryResponse
Error Handling
import { SDKError } from '@apollo-deploy/typescript-sdk';
try {
const result = await client.someApi.someMethod();
} catch (error) {
if (error instanceof SDKError) {
console.error(`Error ${error.status}: ${error.message} (${error.code})`);
}
}