Outpost API Reference
Introduction
The Outpost REST API is a JSON API for managing tenants, destinations, and publishing events to your webhook infrastructure.
Outpost API versions are included in the base URL. Managed deployments use calendar versioning (i.e. /2025-07-01), while OSS/self-hosted deployments use /v1 as the API prefix.
Managed URL: https://api.outpost.hookdeck.com/2025-07-01
Self-hosted URL: https://outpost.your-domain.com/api/v1
Authentication
The Outpost API supports two authentication methods depending on the operation:
| Method | Description |
|---|---|
| Admin API Key | Bearer token for all admin operations. Set via the API_KEY environment variable (self-hosted) or the Hookdeck dashboard (managed). |
| Tenant JWT | Per-tenant JWT token valid for 24 hours. Used for tenant-scoped operations and portal access. Generated via the Get Tenant JWT Token endpoint. |
Include your credentials as a Bearer token in every request.
Errors
Outpost returns JSON error responses with a consistent shape across API endpoints. The status field matches the HTTP status code, message describes the error, and data is included when additional details are available.
| Field | Type | Description |
|---|---|---|
status | Integer | HTTP status code for the response. |
message | String | Human-readable error message. |
data | Array or object | Optional details about the error. Validation errors use an array of messages. |
Common error responses include:
| Status | Description |
|---|---|
400 | Malformed JSON or invalid request parameters. |
401 | Missing or invalid authentication credentials. |
404 | Requested resource not found. |
422 | Request body fails validation. |
500 | Unexpected server error. |
Rate Limits
The Outpost API applies rate limits per API key to ensure system stability. The default rate limit is 240 requests per minute. If you need a higher rate limit, contact us to increase it.
Rate limits are only applicable with managed deployments. Self-hosted deployments do not have rate limits and the operator is responsible for managing the service capacity.
When a rate limit is exceeded, the API returns a 429 Too Many Requests response. Retry the request after the interval indicated in the Retry-After header.
| Header | Description |
|---|---|
X-RateLimit-Limit | Maximum requests allowed in the current window |
X-RateLimit-Remaining | Requests remaining in the current window |
X-RateLimit-Reset | Unix timestamp when the current window resets |
Retry-After | Seconds to wait before retrying (present on 429 responses) |
OpenAPI Schema
The Outpost OpenAPI schema is available and can be used to generate SDKs, import into Postman, or work with any OpenAPI-compatible tooling.
The schema is available in the Outpost GitHub repository.
To import the schema into Postman, use File → Import → Link → paste the URL above
SDKs
Official SDKs for the Outpost API are available for Go, TypeScript, and Python. All SDKs are generated by Speakeasy from the OpenAPI schema and published to their respective package registries.
| Language | Package | Repository |
|---|---|---|
| TypeScript | @hookdeck/outpost-sdk | GitHub |
| Python | outpost-sdk | GitHub |
| Go | outpost-go | GitHub |
Tenants
The API segments resources per tenant. A tenant represents a user/team/organization in your product. The provided value determines the tenant's ID, which can be any string representation.
If your system is not multi-tenant, create a single tenant with a hard-code tenant ID upon initialization. If your system has a single tenant but multiple environments, create a tenant per environment, like live and test.
List Tenants
List all tenants with cursor-based pagination.
When self-hosting this endpoint requires Redis with RediSearch module (e.g.,
redis/redis-stack-server). If RediSearch is not available, this endpoint returns501 Not Implemented.
When authenticated with a Tenant JWT, returns only the authenticated tenant.
Get Tenant
Retrieves details for a specific tenant.
Create or Update Tenant
Idempotently creates or updates a tenant. Required before associating destinations.
Delete Tenant
Deletes the tenant and all associated destinations.
Get Portal Redirect URL
Returns a redirect URL containing a JWT to authenticate the user with the portal. Requires Admin API Key.
Get Tenant JWT Token
Returns a JWT token scoped to the tenant for safe browser API calls. Requires Admin API Key.
Destinations
Destinations are the endpoints where events are sent. Each destination is associated with a tenant and can be configured to receive specific event topics.
The topics array can contain either a list of topics or a wildcard * implying that all topics are supported. If you do not wish to implement topics for your application, you set all destination topics to *.
By default all destination credentials are obfuscated and the values cannot be read. This does not apply to the webhook type destination secret and each destination can expose their own obfuscation logic.
List Destinations
Return a list of the destinations for the tenant. The endpoint is not paged.
Create Destination
Creates a new destination for the tenant. The request body structure depends on the type.
Get Destination
Retrieves details for a specific destination.
Update Destination
Updates the configuration of an existing destination. The request body structure depends on the destination's type. Type itself cannot be updated. May return an OAuth redirect URL for certain types.
Delete Destination
Deletes a specific destination.
Enable Destination
Enables a previously disabled destination.
Disable Destination
Disables a previously enabled destination.
List Destination Attempts
Retrieves a paginated list of attempts scoped to a specific destination.
Get Destination Attempt
Retrieves details for a specific attempt scoped to a destination.
Configuration
The Configuration API is available for managed Outpost deployments only. It allows you to read and update instance-level settings — the same settings available as environment variables in self-hosted deployments.
Get Managed Configuration
Returns managed Outpost configuration values.
This endpoint is only available for the managed version. In self-hosted deployments, configuration is controlled through environment variables instead.
Update Managed Configuration
Updates one or more managed Outpost configuration values. Null values clear the configuration and reverts to Outpost default behavior.
This endpoint is only available for the managed version. In self-hosted deployments, configuration is controlled through environment variables instead.
Only the supported configuration keys are accepted.
Publish
Use the Publish endpoint to send events into Outpost. Events are matched against all destinations whose topic subscriptions and filters match the event. Requires Admin API Key.
Publish Event
Publishes an event to the specified topic, potentially routed to a specific destination. Requires Admin API Key.
Retry
Triggers a retry for delivering an event to a destination. The event must exist and the destination must be enabled and match the event's topic.
Retry Event Delivery
Triggers a retry for delivering an event to a destination. The event must exist and the destination must be enabled and match the event's topic.
When authenticated with a Tenant JWT, only events belonging to that tenant can be retried. When authenticated with Admin API Key, events from any tenant can be retried.