Public API Reference

This customer-facing reference covers the public route families that external teams can call with documented credentials: project API keys, webhook ingest secrets, public form URLs, and signed file URLs. It deliberately leaves browser-only dashboard workflows in the product guides instead of presenting them as integration endpoints.

Reference policy

Use this page when you need to know whether a route is public, which credential it expects, and whether the TypeScript SDK or CLI wraps it today. Use raw HTTP examples when you need cURL-level examples, non-TypeScript language guidance, or browser/raw surfaces such as form ingest.

Available through

Public route families

Project and API keys

Project-scoped metadata, API-key lifecycle, usage context, and Business+ audit log reads.

RouteAuthUseClient coverage
GET/v1/project
admin project keyRead the authenticated project and quota detail.SDK projects.getCurrent(); CLI projects get
PATCH/v1/project
admin project keyUpdate project metadata and supported project settings.SDK projects.update(); CLI projects update
GET/v1/project/api-keys
admin project keyList project API-key metadata.SDK apiKeys.list(); CLI api-keys list
POST/v1/project/api-keys
admin project keyCreate a project API key and receive its secret once.SDK apiKeys.create(); CLI api-keys create
GET/v1/project/api-keys/{keyId}
admin project keyRead non-secret metadata for one project API key.SDK apiKeys.get(); CLI api-keys get
POST/v1/project/api-keys/{keyId}/revoke
admin project keyRevoke a project API key.SDK apiKeys.revoke(); CLI api-keys revoke
POST/v1/project/api-keys/{keyId}/rotate
admin project keyRotate a project API key and receive the replacement secret once.SDK apiKeys.rotate(); CLI api-keys rotate
GET/v1/project/audit-logs
admin project key, Business+List control-plane audit entries.SDK auditLogs.list(); CLI audit-logs list
GET/v1/project/audit-logs/{id}
admin project key, Business+Read one control-plane audit entry.SDK auditLogs.get(); CLI audit-logs get

Webhooks

Webhook lifecycle, provider templates, destinations, routing, transforms, schedules, metrics, and security.

RouteAuthUseClient coverage
GET/v1/webhooks
project keyList webhooks with cursor pagination.SDK webhooks.list(); CLI webhooks list
POST/v1/webhooks
project keyCreate a webhook and receive one-time secrets.SDK webhooks.create(); CLI webhooks create
GET/v1/webhooks/http-packs
project keyList provider-aware inbound packs.SDK httpPacks.list(); CLI http-packs list
GET/v1/webhooks/templates
project keyList webhook templates.SDK templates.list(); CLI templates list
GET/v1/webhooks/{id}
project keyRead a webhook and quota detail.SDK webhooks.get(); CLI webhooks get
PATCH/v1/webhooks/{id}
project keyUpdate webhook configuration.SDK webhooks.update(); CLI webhooks update
POST/v1/webhooks/{id}/pause
project keyPause public ingest for a webhook.SDK webhooks.pause(); CLI webhooks pause
POST/v1/webhooks/{id}/resume
project keyResume a paused webhook.SDK webhooks.resume(); CLI webhooks resume
POST/v1/webhooks/{id}/archive
project keyArchive a webhook.SDK webhooks.archive(); CLI webhooks archive
POST/v1/webhooks/{id}/restore
project keyRestore an archived webhook.SDK webhooks.restore(); CLI webhooks restore
POST/v1/webhooks/{id}/destroy
project keyDestroy an archived webhook.SDK webhooks.destroy(); CLI webhooks destroy
POST/v1/webhooks/{id}/rotate-ingest-secret
project keyRotate the ingest secret and receive the replacement once.SDK webhooks.rotateIngestSecret(); CLI webhooks rotate-ingest-secret
POST/v1/webhooks/{id}/rotate-signing-secret
project keyRotate the signing secret and receive the replacement once.SDK webhooks.rotateSigningSecret(); CLI webhooks rotate-signing-secret
GET/v1/webhooks/{id}/secret-versions
project keyList non-secret version metadata for webhook secrets.SDK webhooks.listSecretVersions(); CLI webhooks secret-versions
POST/v1/webhooks/{id}/test-delivery
project keyRun a synchronous test delivery against the default destination.SDK webhooks.testDelivery(); CLI webhooks test-delivery
GET/v1/webhooks/{id}/destinations
project keyList webhook destinations.SDK webhooks.listDestinations(); CLI webhooks destinations list
POST/v1/webhooks/{id}/destinations
project keyCreate a named destination.SDK webhooks.createDestination(); CLI webhooks destinations create
PATCH/v1/webhooks/{id}/destinations/{destinationId}
project keyUpdate a destination.SDK webhooks.updateDestination(); CLI webhooks destinations update
DELETE/v1/webhooks/{id}/destinations/{destinationId}
project keyDelete a non-default destination.SDK webhooks.deleteDestination(); CLI webhooks destinations delete
GET/v1/webhooks/{id}/routing
project keyRead route-to-one rules.SDK webhooks.getRouting(); CLI webhooks routing get
PUT/v1/webhooks/{id}/routing
project keyReplace route-to-one rules.SDK webhooks.updateRouting(); CLI webhooks routing update
GET/v1/webhooks/{id}/transform
project keyRead the saved payload transform.SDK webhooks.getTransform(); CLI webhooks transform get
PUT/v1/webhooks/{id}/transform
project keyReplace or clear the saved payload transform.SDK webhooks.updateTransform(); CLI webhooks transform update
GET/v1/webhooks/{id}/schedules
project keyList schedules for one webhook.SDK schedules.list(); CLI schedules list
POST/v1/webhooks/{id}/schedules
project key, Starter+Create a recurring schedule.SDK schedules.create(); CLI schedules create
DELETE/v1/webhooks/{id}/schedules/{scheduleId}
project keyDelete a schedule.SDK schedules.delete(); CLI schedules delete
POST/v1/webhooks/{id}/schedules/{scheduleId}/pause
project keyPause a schedule.SDK schedules.pause(); CLI schedules pause
POST/v1/webhooks/{id}/schedules/{scheduleId}/resume
project keyResume a schedule.SDK schedules.resume(); CLI schedules resume
GET/v1/webhooks/{id}/deliveries
project keyList deliveries for one webhook.SDK webhooks.listDeliveries(); CLI webhooks deliveries
GET/v1/webhooks/{id}/metrics
project keyRead webhook delivery metrics for a time window.SDK webhooks.metrics(); CLI webhooks metrics
GET/v1/webhooks/{id}/backlog
project keyRead current and historical backlog shape.SDK webhooks.backlog(); CLI webhooks backlog
GET/v1/webhooks/{id}/email-allowlist
project keyList email sender allowlist entries.SDK webhooks.listEmailAllowlist(); CLI webhooks email-allowlist list
POST/v1/webhooks/{id}/email-allowlist
project key, Starter+Create an email sender allowlist entry.SDK webhooks.createEmailAllowlistEntry(); CLI webhooks email-allowlist add
DELETE/v1/webhooks/{id}/email-allowlist/{entryId}
project key, Starter+Delete an email sender allowlist entry.SDK webhooks.deleteEmailAllowlistEntry(); CLI webhooks email-allowlist delete

Automations

Versioned Code Mode transform automations, run history, templates, quotas, metering, and Enterprise exact-host egress controls.

RouteAuthUseClient coverage
GET/v1/automations
project key, Starter+List transform automations for the authenticated project.SDK automations.list(); CLI automations list
POST/v1/automations
admin project key, Starter+Create a transform automation shell.SDK automations.create(); CLI automations create
GET/v1/automations/{automationId}
project key, Starter+Read one automation, versions, and binding state.SDK automations.get(); CLI automations get
PATCH/v1/automations/{automationId}
admin project key, Starter+Update automation metadata and runtime limits.SDK automations.update(); CLI automations update
POST/v1/automations/{automationId}/pause
admin project key, Starter+Pause an automation without deleting versions.SDK automations.pause(); CLI automations pause
POST/v1/automations/{automationId}/resume
admin project key, Starter+Resume a paused automation.SDK automations.resume(); CLI automations resume
POST/v1/automations/{automationId}/archive
admin project key, Starter+Archive an automation and disable active webhook bindings.SDK automations.archive(); CLI automations archive
GET/v1/automations/{automationId}/versions
project key, Starter+List uploaded automation versions.SDK automations.listVersions(); CLI automations versions list
POST/v1/automations/{automationId}/versions
admin project key, Starter+Upload a new Code Mode version bundle.SDK automations.createVersion(); CLI automations versions create
POST/v1/automations/{automationId}/versions/{versionId}/activate
admin project key, Starter+Activate an uploaded automation version.SDK automations.activateVersion(); CLI automations activate
POST/v1/automations/{automationId}/test
admin project key, Starter+Run a recorded test invocation against sample input.SDK automations.test(); CLI automations test
GET/v1/webhooks/{id}/transform-automation
project key, Starter+Read the Automation transform binding for one webhook.SDK automations.getWebhookBinding(); Raw HTTP
PUT/v1/webhooks/{id}/transform-automation
admin project key, Starter+Bind a transform automation to a webhook.SDK automations.bindWebhook(); CLI automations bind
DELETE/v1/webhooks/{id}/transform-automation
admin project key, Starter+Remove the transform automation binding from a webhook.SDK automations.unbindWebhook(); CLI automations unbind
GET/v1/automation-runs
project key, Starter+List automation runs with webhook and automation filters.SDK automationRuns.list(); CLI automations runs list
GET/v1/automation-runs/export
project key, Starter+Export bounded run history as JSONL or CSV.SDK automationRuns.export(); CLI automations runs export
GET/v1/automation-runs/{runId}
project key, Starter+Read one automation run.SDK automationRuns.get(); CLI automations runs get
GET/v1/automation-runs/{runId}/logs
project key, Starter+List bounded logs emitted by one run.SDK automationRuns.getLogs(); CLI automations logs
GET/v1/automation-runs/{runId}/egress-events
project key, Starter+List outbound egress audit events for one run.SDK automationRuns.getEgressEvents(); CLI automations runs egress-events
GET/v1/automation-quotas
project key, Starter+Read project-level automation quota state.SDK automationQuotas.getProject(); CLI automations quotas
GET/v1/webhooks/{id}/automation-quotas
project key, Starter+Read webhook-scoped automation quota state.SDK automationQuotas.getWebhook(); CLI automations quotas --webhook
GET/v1/automation-billing-usage
project key, Starter+Read provider-neutral raw automation metering.SDK automationBillingUsage.get(); CLI automations usage
GET/v1/automation-templates
project key, Starter+List starter Code Mode transform templates.SDK automationTemplates.list(); CLI automations templates list
GET/v1/automation-templates/{templateId}
project key, Starter+Read one starter automation template.SDK automationTemplates.get(); CLI automations templates get
POST/v1/automation-templates/{templateId}/create
admin project key, Starter+Create an automation and first version from a template.SDK automationTemplates.create(); CLI automations templates create
PUT/v1/automations/{automationId}/egress-policy
admin project key, EnterpriseAttach an Enterprise egress policy to an automation.SDK automations.attachEgressPolicy(); CLI automations egress attach
DELETE/v1/automations/{automationId}/egress-policy
admin project key, EnterpriseDetach an Enterprise egress policy from an automation.SDK automations.detachEgressPolicy(); CLI automations egress detach
GET/v1/automation-egress-policies
admin project key, EnterpriseList Enterprise exact-host egress policies.SDK automationEgressPolicies.list(); CLI automations egress list
POST/v1/automation-egress-policies
admin project key, EnterpriseCreate an Enterprise exact-host egress policy.SDK automationEgressPolicies.create(); CLI automations egress create
GET/v1/automation-egress-policies/{policyId}
admin project key, EnterpriseRead one Enterprise egress policy.SDK automationEgressPolicies.get(); CLI automations egress get
PATCH/v1/automation-egress-policies/{policyId}
admin project key, EnterpriseUpdate one Enterprise egress policy.SDK automationEgressPolicies.update(); CLI automations egress update
DELETE/v1/automation-egress-policies/{policyId}
admin project key, EnterpriseSoft-delete one Enterprise egress policy.SDK automationEgressPolicies.delete(); CLI automations egress delete
GET/v1/automation-egress-policies/{policyId}/credentials
admin project key, EnterpriseList non-secret credential metadata for one egress policy.SDK automationEgressPolicies.listCredentials(); CLI automations egress credentials list
POST/v1/automation-egress-policies/{policyId}/credentials
admin project key, EnterpriseCreate an egress credential and receive no plaintext back.SDK automationEgressPolicies.createCredential(); CLI automations egress credentials create
POST/v1/automation-egress-policies/{policyId}/credentials/{credentialId}/rotate
admin project key, EnterpriseRotate an egress credential secret.SDK automationEgressPolicies.rotateCredential(); CLI automations egress credentials rotate
DELETE/v1/automation-egress-policies/{policyId}/credentials/{credentialId}
admin project key, EnterpriseRetire one egress credential.SDK automationEgressPolicies.deleteCredential(); CLI automations egress credentials delete

Ingest, forms, and files

Public source channels and file-download routes that produce or support delivery history.

RouteAuthUseClient coverage
POST/v1/ingest/{publicId}
webhook ingest secretPublish an HTTP payload into one webhook.SDK ingest helpers; CLI ingest send
GET/v1/form/{publicId}
unguessable public IDRender a minimal HTML form page.Browser or raw HTTP
POST/v1/form/{publicId}
unguessable public IDSubmit a browser form into one webhook.Browser or raw HTTP
OPTIONS/v1/form/{publicId}
noneReturn form-ingest CORS preflight headers.Browser
GET/v1/files/{signedToken}
signed tokenDownload a file through a temporary signed URL.SDK files.downloadSignedUrl(); CLI files download
GET/v1/webhooks/{webhookId}/deliveries/{deliveryId}/files/{index}
project keyDownload a retained delivery file through an authenticated route.SDK files.downloadDeliveryFile(); CLI files download-delivery

Deliveries, replay, and DLQ

Delivery inspection, replay, async bulk operations, dead-letter recovery, and usage.

RouteAuthUseClient coverage
GET/v1/deliveries
project keyList project deliveries with filters and cursor pagination.SDK deliveries.list(); CLI deliveries list
POST/v1/deliveries/bulk-replay
project key, Starter+Create an async bulk replay job over a frozen delivery search.SDK deliveries.bulkReplay(); CLI deliveries bulk-replay
GET/v1/deliveries/{id}
project keyRead one delivery and its attempts.SDK deliveries.get(); CLI deliveries get
POST/v1/deliveries/{id}/replay
project keyReplay one retained delivery.SDK deliveries.replay(); CLI deliveries replay
GET/v1/deliveries/{id}/replay-jobs
project keyList replay jobs for one source delivery.SDK deliveries.listReplayJobs(); CLI deliveries replay-jobs
GET/v1/replay-jobs/{id}
project keyRead one replay job.SDK replayJobs.get(); CLI replay-jobs get
GET/v1/bulk-operations/{id}
project keyRead one bulk replay or bulk recovery job.SDK bulkOperations.get(); CLI bulk-operations get
GET/v1/dlq
project keyList dead-letter entries.SDK dlq.list(); CLI dlq list
GET/v1/dlq/export
project keyExport dead-letter entries with retained source payload snapshots.SDK dlq.export(); CLI dlq export
POST/v1/dlq/bulk-re-drive
project key, Starter+Create an async bulk DLQ recovery job.SDK dlq.bulkRedrive(); CLI dlq bulk-redrive
GET/v1/dlq/{id}
project keyRead one dead-letter entry.SDK dlq.get(); CLI dlq get
POST/v1/dlq/{id}/re-drive
project keyCreate a fresh replay delivery from one DLQ entry.SDK dlq.redrive(); CLI dlq redrive
GET/v1/usage
project keyRead project usage rollups.SDK usage.get(); CLI usage show

Event drains

Project-scoped delivery lifecycle streaming sinks. These /v1/app paths use project API key auth for automation.

RouteAuthUseClient coverage
GET/v1/app/event-drains
project keyList event drains for the authenticated project.SDK eventDrains.list(); CLI event-drains list
POST/v1/app/event-drains
project key, Pro+Create an event drain, subject to tier drain limits.SDK eventDrains.create(); CLI event-drains create
GET/v1/app/event-drains/{drainId}
project keyRead one event drain.SDK eventDrains.get(); CLI event-drains get
PATCH/v1/app/event-drains/{drainId}
project key, Pro+Update one event drain.SDK eventDrains.update(); CLI event-drains update
POST/v1/app/event-drains/{drainId}/pause
project keyPause one event drain.SDK eventDrains.pause(); CLI event-drains pause
POST/v1/app/event-drains/{drainId}/resume
project key, Pro+Resume one event drain and reset its consecutive-failure counter.SDK eventDrains.resume(); CLI event-drains resume
DELETE/v1/app/event-drains/{drainId}
project keyDelete one event drain.SDK eventDrains.delete(); CLI event-drains delete

Operator alerting

Project-scoped alert channels, rules, webhook-backed alert delivery, incidents, and failure clusters.

RouteAuthUseClient coverage
GET/v1/project/operator-webhooks
admin project keyList webhook-backed operator notification endpoints.SDK operatorWebhooks.list(); CLI operator-webhooks list
POST/v1/project/operator-webhooks
admin project key, Pro+Create a webhook-backed operator notification endpoint.SDK operatorWebhooks.create(); CLI operator-webhooks create
GET/v1/project/operator-webhooks/{id}
admin project keyRead one operator notification endpoint.SDK operatorWebhooks.get(); CLI operator-webhooks get
PATCH/v1/project/operator-webhooks/{id}
admin project key, Pro+Update one operator notification endpoint.SDK operatorWebhooks.update(); CLI operator-webhooks update
POST/v1/project/operator-webhooks/{id}/pause
admin project keyPause an operator notification endpoint.SDK operatorWebhooks.pause(); CLI operator-webhooks pause
POST/v1/project/operator-webhooks/{id}/resume
admin project key, Pro+Resume an operator notification endpoint.SDK operatorWebhooks.resume(); CLI operator-webhooks resume
POST/v1/project/operator-webhooks/{id}/archive
admin project keyArchive an operator notification endpoint.SDK operatorWebhooks.archive(); CLI operator-webhooks archive
POST/v1/project/operator-webhooks/{id}/restore
admin project key, Pro+Restore an archived operator notification endpoint.SDK operatorWebhooks.restore(); CLI operator-webhooks restore
POST/v1/project/operator-webhooks/{id}/rotate-signing-secret
admin project key, Pro+Rotate an operator notification endpoint signing secret.SDK operatorWebhooks.rotateSigningSecret(); CLI operator-webhooks rotate-signing-secret
GET/v1/project/operator-webhooks/{id}/secret-versions
admin project keyList non-secret signing-secret version metadata.SDK operatorWebhooks.listSecretVersions(); CLI operator-webhooks secret-versions
GET/v1/project/operator-webhooks/{id}/dispatches
admin project keyList dispatch history for one operator notification endpoint.SDK operatorWebhooks.listDispatches(); CLI operator-webhooks dispatches
GET/v1/project/alert-channels
admin project keyList alert channels.SDK alertChannels.list(); CLI alert-channels list
POST/v1/project/alert-channels
admin project key, Pro+Create an alert channel.SDK alertChannels.create(); CLI alert-channels create
GET/v1/project/alert-channels/{id}
admin project keyRead one alert channel.SDK alertChannels.get(); CLI alert-channels get
PATCH/v1/project/alert-channels/{id}
admin project key, Pro+Update one alert channel.SDK alertChannels.update(); CLI alert-channels update
GET/v1/project/alert-channels/{id}/dispatches
admin project keyList dispatch history for one alert channel.SDK alertChannels.listDispatches(); CLI alert-channels dispatches
GET/v1/project/alert-rules
admin project keyList fixed alert rules.SDK alertRules.list(); CLI alert-rules list
GET/v1/project/alert-rules/{family}
admin project keyRead one fixed alert rule.SDK alertRules.get(); CLI alert-rules get
PATCH/v1/project/alert-rules/{family}
admin project key, Pro+Update one fixed alert rule.SDK alertRules.update(); CLI alert-rules update
GET/v1/project/operator-failure-clusters
admin project keyList recent delivery and DLQ failure clusters.SDK operatorIncidents.listFailureClusters(); CLI operator-incidents failure-clusters
GET/v1/project/operator-incidents
admin project keyList operator incidents.SDK operatorIncidents.list(); CLI operator-incidents list
GET/v1/project/operator-incidents/{id}
admin project keyRead one operator incident with dispatch history.SDK operatorIncidents.get(); CLI operator-incidents get
POST/v1/project/operator-incidents/{id}/mute
admin project keyMute one operator incident.SDK operatorIncidents.mute(); CLI operator-incidents mute
POST/v1/project/operator-incidents/{id}/unmute
admin project keyUnmute one operator incident.SDK operatorIncidents.unmute(); CLI operator-incidents unmute
POST/v1/project/operator-incidents/{id}/resolve
admin project keyResolve one operator incident.SDK operatorIncidents.resolve(); CLI operator-incidents resolve
POST/v1/project/operator-incidents/{id}/reopen
admin project keyReopen one operator incident.SDK operatorIncidents.reopen(); CLI operator-incidents reopen

Common mistakes

  • Treating dashboard-only product workflows as integration endpoints.
  • Assuming the SDK or CLI wraps every public route. Use the client coverage column before choosing an implementation path.
  • Publishing raw secrets in examples, screenshots, logs, or issue reports.
  • Using a write key for routes that require an admin project key.

Was this page helpful?