API Reference

Event Gateway API Reference

Complete REST API reference for building webhook infrastructure with FastHook: create webhook sources, configure HTTP destinations, connect routing rules, inspect inbound requests, retry failed delivery events, save reusable request fixtures, run bulk replay operations, transform payloads, query metrics, and manage authentication or project secrets.

Use these endpoints to automate event gateway workflows, debug webhook delivery, count requests and events by time range, create temporary public request bins, and operate replay-safe webhook integrations through the public API at api.fasthook.io.

The FastHook CLI mirrors the same API surface. Use resource commands such as fasthook sources list, or call any route directly with fasthook api <method> <path> and JSON from --json or --json-file.

97 endpointsapi.fasthook.ioUI uses /api/auth and /api/controlCLI mirrors REST API commands/v1 prefix optional
Download OpenAPI

Overview

FastHook REST API is available at api.fasthook.io. The dashboard UI calls same-origin proxy routes under /api/auth and /api/control, but external integrations should use the public REST base URL. Every route may optionally start with /v1, so /v1/sources and /sources are equivalent.

GET
/v1/sources

Routing and tenancy

Use the REST base URL and pass the active team with x-team-id. If the header is missing, team_id query parameter is used, then the demo team fallback.

Routing and tenancy input parameters

Routing and tenancy accepts the route, header, query, and body inputs listed below.

Routing and tenancy headers

AuthorizationstringRequired

Bearer API key or session token. Used by the Routing and tenancy operation.

x-team-idstringOptional

Team to execute the request against. If omitted, FastHook falls back to team_id query and then the demo team. Used by the Routing and tenancy operation.

Authentication

Create and inspect dashboard sessions. Profile updates require a user session.

Authentication response fields

6 fields
user.id

Stable user identifier for the authenticated FastHook account.

user.email

Email address attached to the authenticated user.

user.name

Display name saved on the user profile.

user.picture_url

Profile image URL when the identity provider supplies one.

session.expires_at

ISO timestamp when the returned dashboard session token expires.

memberships[].team_id

Team IDs the user can access through the authenticated session.

POST
/v1/auth/google/login

Login with Google

Authenticates a Google credential and returns a session token.

Login with Google input parameters

Login with Google accepts the route, header, query, and body inputs listed below.

Login with Google request body

id_token or credentialstringRequired

required Google ID token Used by the Login with Google operation.

team_idstringOptional

optional team ID used to scope the session Used by the Login with Google operation.

POST
/v1/auth/demo/login

Login with demo user

Creates a demo session for local exploration and demo flows.

Login with demo user input parameters

Login with demo user does not require path, query, or body parameters.

GET
/v1/auth/me

Get current profile

Returns the authenticated user, active team, session expiry, and memberships.

Get current profile input parameters

Get current profile does not require path, query, or body parameters.

PATCHPUT
/v1/auth/me

Update profile

Updates editable fields on the current user's profile.

Update profile input parameters

Update profile accepts the route, header, query, and body inputs listed below.

Update profile request body

namestringRequired

required string, max 120 characters Used by the Update profile operation.

Update profile notes

  • Both PATCH and PUT are accepted for profile updates.
POST
/v1/auth/logout

Logout

Invalidates the current session token.

Logout input parameters

Logout does not require path, query, or body parameters.

Sources

Sources are ingress endpoints. External systems send HTTP requests to source URLs.

Sources response fields

16 fields
idsrc_*

Unique source ID. Source IDs use the src_ prefix.

team_id

Team that owns the source.

name

Human-readable source name, unique within the team.

description

Optional description for operators and API clients.

typeWEBHOOK or vendor-specific

Source implementation type, usually WEBHOOK for public ingress endpoints.

config.auth_type

Verification mode applied to inbound webhook requests.

config.auth

Authentication or verification settings for the selected auth type.

config.custom_response

Optional static or rule-based dynamic response FastHook returns to the sender after accepting a source request.

config.discord_defer_ephemeral

DISCORD source setting. When true, FastHook sets the EPHEMERAL flag on the automatic initial defer so follow-up responses remain private.

config.mode

Source runtime mode. webhook is normal queued source behavior; proxy forwards the source request to an upstream API and returns the upstream response.

config.proxy

Proxy mode settings for target URL, path/query forwarding, timeout, response body capture, and allowed methods.

config.allowed_http_methods

HTTP methods accepted by the source endpoint.

url

Public URL that external systems use to send webhooks to this source.

disabled_at

ISO timestamp when the source was disabled, or null when active.

created_at

ISO timestamp when the source was created.

updated_at

ISO timestamp when the source was last changed.

Sources shared request body fields

namestringRequired

required when creating or upserting; optional when updating

descriptionstringOptional

optional string or null

typestringOptional

optional source type, defaults to WEBHOOK

statusenumOptional

optional enabled | disabled

url or config.urlstringOptional

optional source URL

config.auth_typeenumOptional

BASIC_AUTH | API_KEY | HMAC | null

config.authstringOptional

auth settings for auth_type

config.custom_responseobjectOptional

optional object or null

config.custom_response.content_typeenumOptional

json | text | xml

config.custom_response.bodystringOptional

optional fallback response body string

config.custom_response.rulesarrayOptional

optional ordered dynamic response rules array

config.custom_response.rules[].enabledbooleanOptional

optional boolean, false skips the rule

config.custom_response.rules[].matchstringOptional

optional method/path/query/headers/body matcher

config.custom_response.rules[].responsestringOptional

optional status/content_type/body/headers response override

config.discord_defer_ephemeralbooleanOptional

optional boolean for DISCORD sources; adds EPHEMERAL flags to the initial defer response

config.modeenumOptional

optional webhook | proxy; proxy makes the source return the upstream response to the original caller

config.proxy.enabledstringOptional

true enables proxy mode

config.proxy.target_urlstringRequired

required absolute http(s) upstream URL for proxy sources

config.proxy.path_forwardingbooleanOptional

optional boolean, defaults to true; appends the inbound request path to target_url

config.proxy.query_forwardingbooleanOptional

optional boolean, defaults to true; appends inbound query params to target_url

config.proxy.timeout_msintegerOptional

optional 1000-30000 upstream timeout in milliseconds

config.proxy.response_capture_limit_bytesintegerOptional

optional 0-65536 bytes stored in request trace

Proxy targets cannot use localhost, private IP ranges, link-local ranges, loopback, credentials in the URL, or Cloudflare metadata hostsstringOptional

Request parameter.

config.allowed_http_methodsarrayOptional

HEAD | GET | POST | PUT | PATCH | DELETE array

GET
/v1/sources

List sources

Returns configured sources for the active team.

List sources input parameters

List sources accepts the route, header, query, and body inputs listed below.

List sources query parameters

idstringOptional

optional ID filter, comma-separated or repeated Used by the List sources operation.

namestringOptional

optional exact name filter Used by the List sources operation.

typestringOptional

optional resource type filter Used by the List sources operation.

disabledstringOptional

false excludes disabled resources Used by the List sources operation.

order_byenumOptional

name | created_at | updated_at Used by the List sources operation.

direnumOptional

asc | desc Used by the List sources operation.

limitintegerOptional

max 255 Used by the List sources operation.

GET
/v1/sources/:id

Retrieve a source

Returns one source by id.

Retrieve a source input parameters

Retrieve a source accepts the route, header, query, and body inputs listed below.

Retrieve a source path parameters

idstringRequired

Source ID. Used by the Retrieve a source operation.

POST
/v1/sources

Create a source

Creates a source. type defaults to WEBHOOK.

Create a source input parameters

Create a source uses the shared request body fields above together with any route, header, or query inputs listed here.

Create a source notes

  • Duplicate create returns 409 with RESOURCE_ALREADY_EXISTS.
  • custom_response.rules are evaluated before the fallback body; the first enabled matching rule wins.
  • custom_response.body and custom_response.rules can be used together; body is the fallback when no enabled rule matches.
  • Dynamic response rules support $eq, $ne, $contains, $starts_with, $ends_with, $exists, $in, and $regex operators.
  • status defaults to enabled. Send status only when creating a disabled source.
  • description is optional metadata for operators and API clients.
PUT
/v1/sources

Upsert a source

Creates or updates a source by name.

Upsert a source input parameters

Upsert a source uses the shared request body fields above together with any route, header, or query inputs listed here.

PUTPATCH
/v1/sources/:id

Update a source

Partially updates a source. PUT /sources/:id is also supported.

Update a source input parameters

Update a source uses the shared request body fields above together with any route, header, or query inputs listed here.

Update a source path parameters

idstringRequired

Source ID. Used by the Update a source operation.

PUTPOST
/v1/sources/:id/disable

Disable a source

Disables a source and disables related connections.

Disable a source input parameters

Disable a source accepts the route, header, query, and body inputs listed below.

Disable a source path parameters

idstringRequired

Source ID. Used by the Disable a source operation.

Disable a source notes

  • Both PUT and POST are accepted for this action.
PUTPOST
/v1/sources/:id/enable

Enable a source

Enables a previously disabled source.

Enable a source input parameters

Enable a source accepts the route, header, query, and body inputs listed below.

Enable a source path parameters

idstringRequired

Source ID. Used by the Enable a source operation.

Enable a source notes

  • Both PUT and POST are accepted for this action.
DELETE
/v1/sources/:id

Delete a source

Deletes a source by id.

Delete a source input parameters

Delete a source accepts the route, header, query, and body inputs listed below.

Delete a source path parameters

idstringRequired

Source ID. Used by the Delete a source operation.

Destinations

Destinations are outbound endpoints that receive routed events.

Destinations response fields

24 fields
iddes_*

Unique destination ID. Destination IDs use the des_ prefix.

team_id

Team that owns the destination.

name

Human-readable destination name, unique within the team.

description

Optional description for operators and API clients.

typeHTTP | N8N | CLI | MOCK_API | POSTGRESQL | GOOGLE_SHEET | GMAIL | SENDGRID_EMAIL | SLACK | DISCORD_WEBHOOK | TELEGRAM_MESSAGE | CLOUDFLARE_R2 | AWS_S3 | TWILIO_WHATSAPP | TWILIO_SMS | TWILIO_MMS

Destination implementation type: HTTP, N8N, CLI, MOCK_API, POSTGRESQL, GOOGLE_SHEET, GMAIL, SENDGRID_EMAIL, SLACK, DISCORD_WEBHOOK, TELEGRAM_MESSAGE, CLOUDFLARE_R2, AWS_S3, TWILIO_WHATSAPP, TWILIO_SMS, or TWILIO_MMS.

config.url, config.path, or type-specific config

HTTP delivery URL, CLI/mock path, PostgreSQL table settings, sheet-specific Google Sheet settings, Gmail email settings, SendGrid email settings, Slack channel settings, Discord webhook settings, Telegram message settings, Cloudflare R2 archive settings, AWS S3 archive settings, Twilio WhatsApp settings, Twilio SMS settings, or Twilio MMS settings.

config.rate_limit

Optional delivery rate limit for this destination.

config.rate_limit_period

Time window used by the destination rate limit.

config.http_method

HTTP method used when delivering events to the destination.

config.path_forwarding_disabled

Whether inbound request paths are omitted from forwarded delivery URLs.

config.auth_type

Authentication mode used for outbound deliveries: null/NO_AUTH, FASTHOOK_SIGNATURE, CUSTOM_HEADER, OAUTH2_CLIENT_CREDENTIALS, OAUTH2_AUTHORIZATION_CODE, GOOGLE_OAUTH_REFRESH_TOKEN, POSTGRES_PASSWORD, SENDGRID_API_KEY, SLACK_BOT_TOKEN, R2_ACCESS_KEY, AWS_ACCESS_KEY, TWILIO_AUTH_TOKEN, or Google Sheet service account auth.

config.auth

Outbound authentication settings for the selected destination auth type, including OAuth2 token credentials for HTTP destinations.

config.spreadsheet_id

Google Sheet spreadsheet ID for GOOGLE_SHEET destinations.

config.sheet_name

Google Sheet tab name; defaults to Sheet1.

config.value_input_option

Google Sheets value input mode: RAW or USER_ENTERED.

config.columns

Optional ordered list of dotted payload or metadata paths to write into sheet columns.

config.include_metadata

Whether default metadata is written for GOOGLE_SHEET, CLOUDFLARE_R2, and AWS_S3 destinations when explicit output fields are not configured.

config.key_template

Object key template for CLOUDFLARE_R2 and AWS_S3 destinations.

config.content_type

Object media type for CLOUDFLARE_R2 and AWS_S3 destinations.

disabled_at

ISO timestamp when the destination was disabled, or null when active.

attempts_24h_count

Total delivery attempts recorded for this destination in the last 24 hours.

attempts_24h_bins

Recent delivery-attempt histogram for the destination.

created_at

ISO timestamp when the destination was created.

updated_at

ISO timestamp when the destination was last changed.

Destinations shared request body fields

namestringRequired

required when creating, upserting, or replacing; optional when patching

descriptionstringOptional

optional string or null

typeenumOptional

HTTP | N8N | CLI | MOCK_API | POSTGRESQL | GOOGLE_SHEET | GMAIL | SENDGRID_EMAIL | SLACK | DISCORD_WEBHOOK | TELEGRAM_MESSAGE | CLOUDFLARE_R2 | AWS_S3 | TWILIO_WHATSAPP | TWILIO_SMS | TWILIO_MMS

config targetstringRequired

required when creating, upserting, or replacing; optional when patching

config.rate_limitintegerOptional

optional positive integer or null

config.rate_limit_periodenumOptional

second | minute | hour | day

config.http_methodenumOptional

POST | PUT | PATCH | DELETE

config.path_forwarding_disabledbooleanOptional

boolean

config.auth_typeenumOptional

null | NO_AUTH | FASTHOOK_SIGNATURE | CUSTOM_HEADER | OAUTH2_CLIENT_CREDENTIALS | OAUTH2_AUTHORIZATION_CODE | GOOGLE_SERVICE_ACCOUNT | GOOGLE_OAUTH_REFRESH_TOKEN | SENDGRID_API_KEY | SLACK_BOT_TOKEN | R2_ACCESS_KEY | AWS_ACCESS_KEY | TWILIO_AUTH_TOKEN

config.authstringOptional

destination auth settings

config.auth_type null/NO_AUTHstringOptional

disables outbound auth

config.auth.header_name/valuestringRequired

required for CUSTOM_HEADER

config.auth.token_url/client_id/client_secretstringRequired

required for OAUTH2_CLIENT_CREDENTIALS

config.auth.auth_url/token_url/client_id/client_secret/refresh_tokenstringRequired

required for OAUTH2_AUTHORIZATION_CODE

config.auth.client_auth_methodenumOptional

client_secret_post | client_secret_basic

config.auth.client_id/client_secret/refresh_tokenstringRequired

required for GOOGLE_OAUTH_REFRESH_TOKEN

config.auth.api_keystringRequired

required for SENDGRID_API_KEY

config.auth.scopestringOptional

optional for OAuth2 auth types and GOOGLE_OAUTH_REFRESH_TOKEN

config.auth.redirect_uristringOptional

optional for OAUTH2_AUTHORIZATION_CODE

config.auth.audience, config.auth.authorization_params, config.auth.token_paramsstringOptional

optional for OAuth2 auth types

config.host/config.port/config.databasestringRequired

required PostgreSQL endpoint; port defaults to 5432

config.schema/config.tablestringOptional

target PostgreSQL schema and table; schema defaults to public

config.payload_columnstringRequired

required JSONB target column, defaults to payload

config.event_id_columnstringOptional

optional text column for FastHook event IDs and idempotency

config.metadata_columnstringOptional

optional JSONB column for FastHook delivery metadata

config.delivered_at_columnstringOptional

optional timestamptz delivery-time column

config.on_conflictenumOptional

ERROR | IGNORE; IGNORE requires event_id_column and a matching UNIQUE constraint

config.ssl_modeenumOptional

verify-full | disable; defaults to verify-full

config.connect_timeout_secondsintegerOptional

integer from 1 to 30, defaults to 10

config.auth_typestringOptional

POSTGRES_PASSWORD for POSTGRESQL

config.auth.username/config.auth.passwordstringRequired

required PostgreSQL credentials

POSTGRESQL targets must be publicly reachable; FastHook does not create or migrate the tablestringOptional

Request parameter.

config.spreadsheet_idstringRequired

required for GOOGLE_SHEET

config.sheet_namestringOptional

optional for GOOGLE_SHEET, defaults to Sheet1

config.value_input_optionenumOptional

RAW | USER_ENTERED

config.columnsarrayOptional

optional array of dotted payload or metadata paths

config.include_metadatabooleanOptional

optional boolean

config.toarrayRequired

required for GMAIL; string or array of recipient templates

config.cc/config.bcc/config.reply_tostringOptional

optional for GMAIL

config.subjectstringOptional

optional for GMAIL, defaults to FastHook event {{event_id}}

config.text_template/config.html_templatestringOptional

optional for GMAIL

config.auth_typestringOptional

GOOGLE_OAUTH_REFRESH_TOKEN for GMAIL

config.auth.client_id/client_secret/refresh_tokenstringRequired

required for GMAIL

config.auth.scopestringOptional

https://www.googleapis.com/auth/gmail.send for GMAIL

config.fromstringRequired

required for SENDGRID_EMAIL; verified SendGrid sender email or authenticated domain address; fasthook.io sender domains are admin-only

config.from_namestringOptional

optional display name for SENDGRID_EMAIL

config.toarrayRequired

required for SENDGRID_EMAIL; string or array of recipient templates

config.cc/config.bcc/config.reply_tostringOptional

optional for SENDGRID_EMAIL

config.subjectstringOptional

optional for SENDGRID_EMAIL, defaults to FastHook event {{event_id}}

config.text_template/config.html_templatestringOptional

optional for SENDGRID_EMAIL

config.api_base_urlstringOptional

optional for SENDGRID_EMAIL; https://api.sendgrid.com or https://api.eu.sendgrid.com

config.auth_typestringOptional

SENDGRID_API_KEY for SENDGRID_EMAIL

config.auth.api_keystringRequired

required SG... SendGrid API key for SENDGRID_EMAIL

SENDGRID_EMAIL accepts at most 10 total To, Cc, and Bcc recipients after template renderingstringOptional

Request parameter.

config.channelstringRequired

required for SLACK; channel name or channel ID, with IDs preferred for private or renamed channels

config.text_templatestringRequired

required message text template for SLACK; also used as Slack fallback text when blocks are present

config.blocks_templatearrayOptional

optional JSON string for Slack Block Kit blocks; rendered template must become an array or an object with a blocks array

config.auth_typestringOptional

SLACK_BOT_TOKEN for SLACK

config.auth.bot_tokenstringRequired

required xoxb- Slack bot token for SLACK

Slack bot token needs chatstringOptional

write; add chat:write.public only when posting to public channels without inviting the app first

Invite the Slack app bot to private channels and to public channels when chatstringOptional

write.public is not used

config.delivery_modestringOptional

WEBHOOK (default) for channel messages or INTERACTION_FOLLOWUP for slash-command follow-ups

config.webhook_urlstringRequired

required only when delivery_mode is WEBHOOK; Discord execute webhook URL

config.content_templatestringOptional

optional message content template for DISCORD_WEBHOOK, defaults to FastHook event {{event_id}} and {{payload}}

config.username_template/config.avatar_url_templatestringOptional

optional WEBHOOK-mode sender overrides

config.embeds_templatearrayOptional

optional JSON object or array of Discord embeds after template rendering

config.components_templatearrayOptional

optional Discord components JSON array after template rendering

config.poll_templateobjectOptional

optional Discord poll JSON object after template rendering

config.files_templatearrayOptional

optional JSON array of up to 10 public HTTPS file URLs or objects with url, filename, description, and spoiler fields

config.thread_id_template/config.thread_name_templatestringOptional

WEBHOOK-mode existing thread target or new forum/media thread name; configure only one

config.suppress_embeds/config.suppress_notificationsstringOptional

optional Discord message flags

config.allowed_mentions_parsearrayOptional

optional array containing roles, users, and/or everyone; defaults to empty to avoid pings

INTERACTION_FOLLOWUP reads application_id and token from the original signed Discord request; delivery must occur within 15 minutesstringOptional

Request parameter.

Discord file uploads are limited to 10 MiB per file and 20 MiB total per message; private and metadata hosts are blockedstringOptional

Request parameter.

DISCORD_WEBHOOK destinations are fixed at 1 request per secondstringOptional

Request parameter.

config.account_idstringRequired

required for CLOUDFLARE_R2; client Cloudflare account ID

config.endpointstringOptional

optional for CLOUDFLARE_R2; defaults to https://<account_id>.r2.cloudflarestorage.com

config.bucketstringRequired

required for CLOUDFLARE_R2; client R2 bucket name

config.key_templateobjectRequired

required for CLOUDFLARE_R2; R2 object key template, defaults to archives/{{team_id}}/{{source_id}}/{{event_id}}.json

config.content_typeobjectOptional

optional for CLOUDFLARE_R2; object media type, defaults to application/json

config.body_templatestringOptional

optional for CLOUDFLARE_R2; rendered archive body, otherwise FastHook stores metadata plus payload JSON

config.include_metadatabooleanOptional

optional boolean for CLOUDFLARE_R2 envelope mode

config.auth_typestringRequired

required for CLOUDFLARE_R2; use R2_ACCESS_KEY

config.auth.access_key_id/config.auth.secret_access_keystringRequired

required R2 S3 API credentials

config.auth.session_tokenstringOptional

optional temporary credential token

config.regionstringRequired

required for AWS_S3; AWS region used for SigV4 signing, such as eu-central-1

config.endpointstringOptional

optional for AWS_S3; defaults to https://s3.<region>.amazonaws.com

config.bucketstringRequired

required for AWS_S3; client S3 bucket name

config.force_path_stylebooleanOptional

optional boolean for AWS_S3 path-style S3 URLs

config.key_templateobjectRequired

required for AWS_S3; S3 object key template, defaults to archives/{{team_id}}/{{source_id}}/{{event_id}}.json

config.content_typeobjectOptional

optional for AWS_S3; object media type, defaults to application/json

config.body_templatestringOptional

optional for AWS_S3; rendered archive body, otherwise FastHook stores metadata plus payload JSON

config.include_metadatabooleanOptional

optional boolean for AWS_S3 envelope mode

config.auth_typestringRequired

required for AWS_S3; use AWS_ACCESS_KEY

config.auth.access_key_id/config.auth.secret_access_keyobjectRequired

required AWS credentials with s3:PutObject permission

config.auth.session_tokenstringOptional

optional temporary AWS session token

config.tostringRequired

required for TWILIO_WHATSAPP; WhatsApp recipient address or template, usually whatsapp:+E.164

config.fromstringRequired

required for TWILIO_WHATSAPP unless config.messaging_service_sid is set; Sandbox sender is whatsapp:+14155238886

config.body_templatestringRequired

required message body template for TWILIO_WHATSAPP free-form sends

config.messaging_service_sidstringRequired

optional MG... SID; required when config.content_sid is set and common for production sender pools

config.content_sidstringOptional

optional HX... Twilio Content SID for approved WhatsApp templates

config.content_variables_templateobjectOptional

optional JSON object string for Twilio ContentVariables, for example {"1":"{{payload.customer.name}}"}

config.auth_typestringOptional

TWILIO_AUTH_TOKEN for TWILIO_WHATSAPP

config.auth.account_sid/config.auth.auth_tokenstringRequired

required for TWILIO_WHATSAPP

Sandbox recipients must send join <code> to +14155238886 from the exact WhatsApp account that should receive messagesstringOptional

Request parameter.

From and To must be different WhatsApp addresses; Twilio error 63031 means they are the samestringOptional

Request parameter.

Twilio error 63015 usually means the Sandbox recipient has not joined the current SandboxstringOptional

Request parameter.

config.tointegerRequired

required for TWILIO_SMS; SMS recipient phone number or template, usually +E.164

config.fromintegerRequired

required for TWILIO_SMS unless config.messaging_service_sid is set; SMS-capable Twilio number, short code, or alphanumeric sender ID

config.body_templatestringRequired

required message body template for TWILIO_SMS; supports {{payload.message}} and shorthand {{message}}

config.messaging_service_sidstringOptional

optional MG... SID for Twilio Messaging Service sender pools

config.auth_typestringOptional

TWILIO_AUTH_TOKEN for TWILIO_SMS

config.auth.account_sid/config.auth.auth_tokenstringRequired

required for TWILIO_SMS

Trial accounts can usually send SMS only to verified recipient numbers; Twilio error 21608 means the To number needs verificationintegerOptional

Request parameter.

Enable Twilio SMS Geo Permissions for the destination country; Twilio error 21408 means that country is not enabledstringOptional

Request parameter.

Twilio error 21606 usually means the From sender is not SMS-capable for that recipientstringOptional

Request parameter.

config.tointegerRequired

required for TWILIO_MMS; MMS recipient phone number or template, usually +E.164

config.fromintegerRequired

required for TWILIO_MMS unless config.messaging_service_sid is set; MMS-capable Twilio number

config.body_templatestringRequired

required message body template for TWILIO_MMS; supports {{payload.message}} and shorthand {{message}}

config.media_urlsarrayRequired

required array of one to ten public HTTP or HTTPS media URLs; template tokens such as {{payload.media_url}} and {{media_url}} are supported

config.messaging_service_sidstringOptional

optional MG... SID for Twilio Messaging Service sender pools

config.auth_typestringOptional

TWILIO_AUTH_TOKEN for TWILIO_MMS

config.auth.account_sid/config.auth.auth_tokenstringRequired

required for TWILIO_MMS

Trial accounts can usually send only to verified recipient numbers; Twilio error 21608 means the To number needs verificationintegerOptional

Request parameter.

Enable Twilio Messaging Geo Permissions for the destination country; Twilio error 21408 means that country is not enabledstringOptional

Request parameter.

The sender, Messaging Service, country, and carrier route must support MMS; SMS support alone does not guarantee MMS deliverystringOptional

Request parameter.

GET
/v1/destinations

List destinations

Returns configured destinations with 24 hour attempt metrics.

List destinations input parameters

List destinations accepts the route, header, query, and body inputs listed below.

List destinations query parameters

idstringOptional

optional ID filter, comma-separated or repeated Used by the List destinations operation.

namestringOptional

optional exact name filter Used by the List destinations operation.

typestringOptional

optional resource type filter Used by the List destinations operation.

disabledstringOptional

false excludes disabled resources Used by the List destinations operation.

order_byenumOptional

name | created_at | updated_at Used by the List destinations operation.

direnumOptional

asc | desc Used by the List destinations operation.

limitintegerOptional

max 255 Used by the List destinations operation.

GET
/v1/destinations/:id

Retrieve a destination

Returns a destination by id.

Retrieve a destination input parameters

Retrieve a destination accepts the route, header, query, and body inputs listed below.

Retrieve a destination path parameters

idstringRequired

Destination ID. Used by the Retrieve a destination operation.

POST
/v1/destinations

Create a destination

Creates a destination. type defaults to HTTP.

Create a destination input parameters

Create a destination uses the shared request body fields above together with any route, header, or query inputs listed here.

PUT
/v1/destinations

Upsert a destination

Creates or updates a destination by name.

Upsert a destination input parameters

Upsert a destination uses the shared request body fields above together with any route, header, or query inputs listed here.

PUT
/v1/destinations/:id

Replace a destination

Replaces a destination by id. Send the full destination payload; config is replaced, not merged.

Replace a destination input parameters

Replace a destination uses the shared request body fields above together with any route, header, or query inputs listed here.

Replace a destination path parameters

idstringRequired

Destination ID. Used by the Replace a destination operation.

Replace a destination notes

  • Use PATCH /v1/destinations/:id when you only want to change part of the destination config.
PATCH
/v1/destinations/:id

Patch a destination

Partially updates a destination by merging the provided fields with the existing destination.

Patch a destination input parameters

Patch a destination uses the shared request body fields above together with any route, header, or query inputs listed here.

Patch a destination path parameters

idstringRequired

Destination ID. Used by the Patch a destination operation.

Patch a destination notes

  • The CLI command fasthook destinations update uses this endpoint.
PUTPOST
/v1/destinations/:id/disable

Disable a destination

Disables an outbound destination.

Disable a destination input parameters

Disable a destination accepts the route, header, query, and body inputs listed below.

Disable a destination path parameters

idstringRequired

Destination ID. Used by the Disable a destination operation.

Disable a destination notes

  • Both PUT and POST are accepted for this action.
PUTPOST
/v1/destinations/:id/enable

Enable a destination

Enables a previously disabled destination.

Enable a destination input parameters

Enable a destination accepts the route, header, query, and body inputs listed below.

Enable a destination path parameters

idstringRequired

Destination ID. Used by the Enable a destination operation.

Enable a destination notes

  • Both PUT and POST are accepted for this action.
DELETE
/v1/destinations/:id

Delete a destination

Deletes a destination by id.

Delete a destination input parameters

Delete a destination accepts the route, header, query, and body inputs listed below.

Delete a destination path parameters

idstringRequired

Destination ID. Used by the Delete a destination operation.

Transformations

Transformations are reusable JavaScript snippets that reshape requests before delivery.

Transformations response fields

15 fields
idtrs_*

Unique transformation ID. Transformation IDs use the trs_ prefix.

team_id

Team that owns the transformation.

name

Human-readable transformation name, unique within the team.

code

JavaScript code executed to reshape a webhook request before delivery.

env

Key-value environment variables available to the transformation runtime.

code_hash

Hash of the current transformation code for change detection.

deleted_at

ISO timestamp when the transformation was deleted, or null when active.

executions_24h_count

Number of transformation executions recorded in the last 24 hours.

executions_24h_successful_count

Number of transformation executions without error-level logs in the last 24 hours.

executions_24h_failed_count

Number of transformation executions with error-level logs in the last 24 hours.

executions_24h_successful_bins

Top-level six-bucket history of successful transformation executions during the last 24 hours.

executions_24h_failed_bins

Top-level six-bucket history of failed transformation executions during the last 24 hours.

connections_count

Number of routing connections that reference this transformation.

created_at

ISO timestamp when the transformation was created.

updated_at

ISO timestamp when the transformation was last changed.

GET
/v1/transformations

List transformations

Returns reusable transformation rules without loading execution or connection metrics by default.

List transformations input parameters

List transformations accepts the route, header, query, and body inputs listed below.

List transformations query parameters

idstringOptional

optional ID filter, comma-separated or repeated Used by the List transformations operation.

namestringOptional

optional exact name filter Used by the List transformations operation.

include_metricsstringOptional

true includes legacy execution and connection counts Used by the List transformations operation.

order_byenumOptional

name | created_at | updated_at Used by the List transformations operation.

direnumOptional

asc | desc Used by the List transformations operation.

limitintegerOptional

max 255 Used by the List transformations operation.

List transformations notes

  • Use GET /v1/metrics/transformations after listing visible transformations to load table counts separately.
POST
/v1/transformations

Create a transformation

Creates a new transformation with code.

Create a transformation input parameters

Create a transformation accepts the route, header, query, and body inputs listed below.

Create a transformation request body

namestringRequired

required Used by the Create a transformation operation.

codestringRequired

required Used by the Create a transformation operation.

envobjectOptional

optional object Used by the Create a transformation operation.

PUT
/v1/transformations

Upsert a transformation

Upserts a transformation by name.

Upsert a transformation input parameters

Upsert a transformation accepts the route, header, query, and body inputs listed below.

Upsert a transformation request body

namestringRequired

required string Used by the Upsert a transformation operation.

codestringRequired

required string Used by the Upsert a transformation operation.

envobjectOptional

optional object Used by the Upsert a transformation operation.

PUT
/v1/transformations/run

Run a transformation

Runs inline code or a saved transformation against a request sample.

Run a transformation input parameters

Run a transformation accepts the route, header, query, and body inputs listed below.

Run a transformation request body

transformation_idstringOptional

optional saved transformation ID Used by the Run a transformation operation.

codestringOptional

optional JavaScript code when transformation_id is omitted Used by the Run a transformation operation.

envobjectOptional

optional object of string variables Used by the Run a transformation operation.

request.headersobjectOptional

optional object Used by the Run a transformation operation.

request.bodystringOptional

optional JSON value Used by the Run a transformation operation.

request.queryobjectOptional

optional object or query string Used by the Run a transformation operation.

request.pathstringOptional

optional path string Used by the Run a transformation operation.

request.methodstringOptional

optional HTTP method Used by the Run a transformation operation.

GET
/v1/transformations/:id

Retrieve a transformation

Returns a transformation by id.

Retrieve a transformation input parameters

Retrieve a transformation accepts the route, header, query, and body inputs listed below.

Retrieve a transformation path parameters

idstringRequired

Transformation ID. Used by the Retrieve a transformation operation.

PUT
/v1/transformations/:id

Update a transformation

Updates transformation code or metadata.

Update a transformation input parameters

Update a transformation accepts the route, header, query, and body inputs listed below.

Update a transformation path parameters

idstringRequired

Transformation ID. Used by the Update a transformation operation.

Update a transformation request body

namestringOptional

optional string Used by the Update a transformation operation.

codestringOptional

optional string Used by the Update a transformation operation.

envobjectOptional

optional object Used by the Update a transformation operation.

DELETE
/v1/transformations/:id

Delete a transformation

Deletes a transformation by id.

Delete a transformation input parameters

Delete a transformation accepts the route, header, query, and body inputs listed below.

Delete a transformation path parameters

idstringRequired

Transformation ID. Used by the Delete a transformation operation.

GET
/v1/transformations/:id/executions

List transformation executions

Returns run metadata and logs for executions of a transformation.

List transformation executions input parameters

List transformation executions accepts the route, header, query, and body inputs listed below.

List transformation executions path parameters

idstringRequired

Transformation ID. Used by the List transformation executions operation.

List transformation executions notes

  • Execution models include team_id for the owning team.
GET
/v1/transformations/:id/executions/:executionId

Retrieve a transformation execution

Returns one execution with logs and original/transformed event data.

Retrieve a transformation execution input parameters

Retrieve a transformation execution accepts the route, header, query, and body inputs listed below.

Retrieve a transformation execution path parameters

idstringRequired

Transformation ID. Used by the Retrieve a transformation execution operation.

executionIdstringRequired

Transformation execution ID. Used by the Retrieve a transformation execution operation.

Retrieve a transformation execution notes

  • The response includes team_id for the owning team.

Request Fixtures

Request fixtures save real inbound webhook payloads as named test cases that can be replayed through a selected connection.

Request Fixtures response fields

11 fields
idfix_*

Unique fixture ID. Request fixture IDs use the fix_ prefix.

team_id

Team that owns the saved request fixture.

name

Human-readable test-case name, such as Successful payment or Invalid signature.

description

Optional expected result, edge case, or operator note for the fixture.

source_id

Source from which the original webhook request was captured.

source_name

Source name captured for display alongside the fixture.

original_request_id

Inbound request used to create the immutable fixture payload snapshot.

replay_count

Number of fixture replays queued so far.

last_replayed_at

ISO timestamp of the most recent replay, or null before the first replay.

created_at

ISO timestamp when the fixture was saved.

updated_at

ISO timestamp when the fixture metadata or replay counters last changed.

GET
/v1/request-fixtures

List request fixtures

Returns the active team's saved webhook test fixtures, newest first.

List request fixtures input parameters

List request fixtures does not require path, query, or body parameters.

POST
/v1/request-fixtures

Save a request fixture

Creates a named fixture from a stored inbound request in the active team.

Save a request fixture input parameters

Save a request fixture accepts the route, header, query, and body inputs listed below.

Save a request fixture request body

request_idstringRequired

required request ID Used by the Save a request fixture operation.

namestringRequired

required string, max 120 characters Used by the Save a request fixture operation.

descriptionstringOptional

optional string, max 500 characters Used by the Save a request fixture operation.

Save a request fixture notes

  • The request payload, headers, path, query, and HTTP method are copied into the fixture snapshot.
GET
/v1/request-fixtures/:id

Retrieve a request fixture

Returns one saved request fixture from the active team.

Retrieve a request fixture input parameters

Retrieve a request fixture accepts the route, header, query, and body inputs listed below.

Retrieve a request fixture path parameters

idstringRequired

Saved request fixture ID. Used by the Retrieve a request fixture operation.

PATCHPUT
/v1/request-fixtures/:id

Update a request fixture

Renames a fixture or updates its expected result and edge-case notes.

Update a request fixture input parameters

Update a request fixture accepts the route, header, query, and body inputs listed below.

Update a request fixture path parameters

idstringRequired

Saved request fixture ID. Used by the Update a request fixture operation.

Update a request fixture request body

namestringOptional

optional string, max 120 characters Used by the Update a request fixture operation.

descriptionstringOptional

optional string or null, max 500 characters Used by the Update a request fixture operation.

DELETE
/v1/request-fixtures/:id

Delete a request fixture

Deletes a saved fixture without deleting its original request.

Delete a request fixture input parameters

Delete a request fixture accepts the route, header, query, and body inputs listed below.

Delete a request fixture path parameters

idstringRequired

Saved request fixture ID. Used by the Delete a request fixture operation.

GET
/v1/request-fixtures/:id/targets

List fixture replay targets

Returns enabled connections that use the fixture's source and can receive a replay.

List fixture replay targets input parameters

List fixture replay targets accepts the route, header, query, and body inputs listed below.

List fixture replay targets path parameters

idstringRequired

Saved request fixture ID. Used by the List fixture replay targets operation.

POST
/v1/request-fixtures/:id/replay

Replay a request fixture

Queues the saved webhook payload against one selected connection and destination.

Replay a request fixture input parameters

Replay a request fixture accepts the route, header, query, and body inputs listed below.

Replay a request fixture path parameters

idstringRequired

Saved request fixture ID. Used by the Replay a request fixture operation.

Replay a request fixture request body

connection_idstringRequired

required connection ID returned by the targets endpoint Used by the Replay a request fixture operation.

Replay a request fixture notes

  • Returns 202 Accepted after the replay message is published.

Connections

Connections route events from one source to one destination and apply rules.

Connections response fields

11 fields
idweb_*

Unique connection ID. Connection IDs use the web_ prefix.

team_id

Team that owns the connection.

name

Human-readable connection name, unique within the team.

description

Optional description for operators and API clients.

source

Source object that receives inbound webhook requests.

destination

Destination object that receives routed event deliveries.

rules

Ordered connection rules applied during routing and delivery.

disabled_at

ISO timestamp when the connection was disabled, or null when active.

paused_at

ISO timestamp when event delivery was paused, or null when unpaused.

created_at

ISO timestamp when the connection was created.

updated_at

ISO timestamp when the connection was last changed.

GET
/v1/connections

List connections

Returns routing connections for the active team.

List connections input parameters

List connections accepts the route, header, query, and body inputs listed below.

List connections query parameters

order_byenumOptional

name | created_at | updated_at Used by the List connections operation.

direnumOptional

asc | desc Used by the List connections operation.

limitintegerOptional

max 255 Used by the List connections operation.

GET
/v1/connections/:id

Retrieve a connection

Returns one connection with full source and destination objects.

Retrieve a connection input parameters

Retrieve a connection accepts the route, header, query, and body inputs listed below.

Retrieve a connection path parameters

idstringRequired

Connection ID. Used by the Retrieve a connection operation.

POST
/v1/connections

Create a connection

Creates a connection between a source and destination.

Create a connection input parameters

Create a connection accepts the route, header, query, and body inputs listed below.

Create a connection request body

namestringRequired

required string Used by the Create a connection operation.

descriptionstringOptional

optional string or null Used by the Create a connection operation.

source_id or source.idstringRequired

required source ID Used by the Create a connection operation.

destination_id or destination.idstringRequired

required destination ID Used by the Create a connection operation.

disabled_atdatetimeOptional

optional ISO datetime when delivery should be disabled, or null Used by the Create a connection operation.

paused_atdatetimeOptional

optional ISO datetime when delivery should be paused, or null Used by the Create a connection operation.

rulesarrayOptional

optional array of retry, delay, filter, transform, and deduplicate rules Used by the Create a connection operation.

PUT
/v1/connections

Upsert a connection

Upserts by id, otherwise by source_id and name.

Upsert a connection input parameters

Upsert a connection accepts the route, header, query, and body inputs listed below.

Upsert a connection request body

idstringOptional

optional connection ID to upsert directly Used by the Upsert a connection operation.

namestringRequired

required string when id is omitted Used by the Upsert a connection operation.

descriptionstringOptional

optional string or null Used by the Upsert a connection operation.

source_id or source.idstringRequired

required source ID Used by the Upsert a connection operation.

destination_id or destination.idstringRequired

required destination ID Used by the Upsert a connection operation.

disabled_atdatetimeOptional

optional ISO datetime to disable delivery during the upsert, or null Used by the Upsert a connection operation.

paused_atdatetimeOptional

optional ISO datetime to pause delivery during the upsert, or null Used by the Upsert a connection operation.

rulesarrayOptional

optional array of retry, delay, filter, transform, and deduplicate rules Used by the Upsert a connection operation.

PUTPATCH
/v1/connections/:id

Update a connection

Partially updates a connection. PUT /connections/:id is also supported.

Update a connection input parameters

Update a connection accepts the route, header, query, and body inputs listed below.

Update a connection path parameters

idstringRequired

Connection ID. Used by the Update a connection operation.

Update a connection request body

namestringOptional

optional string Used by the Update a connection operation.

descriptionstringOptional

optional string or null Used by the Update a connection operation.

source_id or source.idstringOptional

optional source ID Used by the Update a connection operation.

destination_id or destination.idstringOptional

optional destination ID Used by the Update a connection operation.

disabled_atdatetimeOptional

optional ISO datetime to change the disabled state, or null Used by the Update a connection operation.

paused_atdatetimeOptional

optional ISO datetime to change the paused state, or null Used by the Update a connection operation.

rulesarrayOptional

optional array of retry, delay, filter, transform, and deduplicate rules Used by the Update a connection operation.

GET
/v1/connections/:id/latest-input

Retrieve latest input

Returns the latest request input seen by the connection source.

Retrieve latest input input parameters

Retrieve latest input accepts the route, header, query, and body inputs listed below.

Retrieve latest input path parameters

idstringRequired

Connection ID. Used by the Retrieve latest input operation.

PUT
/v1/connections/:id/pause

Pause a connection

Pauses delivery for a connection.

Pause a connection input parameters

Pause a connection accepts the route, header, query, and body inputs listed below.

Pause a connection path parameters

idstringRequired

Connection ID. Used by the Pause a connection operation.

PUT
/v1/connections/:id/unpause

Unpause a connection

Resumes delivery for a paused connection.

Unpause a connection input parameters

Unpause a connection accepts the route, header, query, and body inputs listed below.

Unpause a connection path parameters

idstringRequired

Connection ID. Used by the Unpause a connection operation.

PUTPOST
/v1/connections/:id/disable

Disable a connection

Disables routing for a connection.

Disable a connection input parameters

Disable a connection accepts the route, header, query, and body inputs listed below.

Disable a connection path parameters

idstringRequired

Connection ID. Used by the Disable a connection operation.

Disable a connection notes

  • Both PUT and POST are accepted for this action.
PUTPOST
/v1/connections/:id/enable

Enable a connection

Enables routing for a connection.

Enable a connection input parameters

Enable a connection accepts the route, header, query, and body inputs listed below.

Enable a connection path parameters

idstringRequired

Connection ID. Used by the Enable a connection operation.

Enable a connection notes

  • Both PUT and POST are accepted for this action.
DELETE
/v1/connections/:id

Delete a connection

Deletes a connection by id.

Delete a connection input parameters

Delete a connection accepts the route, header, query, and body inputs listed below.

Delete a connection path parameters

idstringRequired

Connection ID. Used by the Delete a connection operation.

Connection Rules

Rules live inside connection.rules and are evaluated in normalized order.

Connection Rules response fields

15 fields
typeretry | delay | filter | transform | transformation | deduplicate

Rule type that determines how FastHook evaluates or changes delivery behavior.

strategy

Retry scheduling strategy, such as exponential backoff.

interval

Base retry interval in milliseconds.

count

Maximum number of retry attempts for the retry rule.

response_status_codes

HTTP response status codes or ranges that trigger retry behavior.

delay

Delivery delay in milliseconds for delay rules.

headers

Header predicates used by filter or deduplication rules.

body

Body predicates used by filter or deduplication rules.

query

Query-string predicates used by filter rules.

path

Path predicate used by filter rules.

transformation_id

Saved transformation ID linked to a transform rule.

transformation

Inline transformation object that can be upserted and linked to the connection.

window

Deduplication window in milliseconds.

include_fields

Request fields included when building a deduplication key.

exclude_fields

Request fields excluded when building a deduplication key.

PUT
/v1/connections/:id

Rule payload

Supported rule types are retry, delay, filter, transform, transformation, and deduplicate.

Rule payload input parameters

Rule payload accepts the route, header, query, and body inputs listed below.

Rule payload path parameters

idstringRequired

Connection ID. Used by the Rule payload operation.

Rule payload request body

rulesarrayOptional

Request parameter. Used by the Rule payload operation.

Rule payload notes

  • delay must be between 0 and 86400000 ms.
  • deduplicate.window must be between 1000 and 3600000 ms.
  • inline transformation objects are upserted into transformations and linked by transformation_id.

Project Secrets

Project secrets provide API access and outbound signature verification for a team.

Project Secrets response fields

9 fields
team_id

Team that owns the project secrets.

created_at

ISO timestamp when the secret pair was created.

updated_at

ISO timestamp when either secret was last changed.

api_key.value

Project API key used to authenticate Control API requests.

api_key.masked_value

Redacted API key display value.

api_key.last_rotated_at

ISO timestamp when the API key was last rotated.

signing_secret.value

Secret used to sign FastHook outbound webhook deliveries.

signing_secret.masked_value

Redacted signing secret display value.

signing_secret.last_rotated_at

ISO timestamp when the signing secret was last rotated.

GET
/v1/project-secrets

Get project secrets

Returns the team's project API key and signing secret. A missing pair is created lazily.

Get project secrets input parameters

Get project secrets does not require path, query, or body parameters.

PUT
/v1/project-secrets

Update project secrets

Updates one or both caller-provided secret values.

Update project secrets input parameters

Update project secrets accepts the route, header, query, and body inputs listed below.

Update project secrets request body

api_keystringOptional

optional API key string with at least 12 characters Used by the Update project secrets operation.

signing_secretstringOptional

optional signing secret string with at least 12 characters Used by the Update project secrets operation.

Update project secrets notes

  • At least one of api_key or signing_secret is required.
POST
/v1/project-secrets/rotate

Rotate project secrets

Rotates one or both generated secret values.

Rotate project secrets input parameters

Rotate project secrets accepts the route, header, query, and body inputs listed below.

Rotate project secrets request body

rotatearrayOptional

optional array of api_key and signing_secret Used by the Rotate project secrets operation.

Rotate project secrets notes

  • Empty body rotates both secrets.
  • Use rotate=["signing_secret"] to rotate only the signing secret.

Public Request Bins

Public request bins provide temporary no-login webhook URLs with private read tokens, one-hour cleanup, optional account claiming, and a live request stream.

Public Request Bins response fields

8 fields
idsrc_*

Temporary bin source ID. Public bin IDs use the src_ prefix.

endpoint

Public hook URL that receives webhook requests for the bin.

tokenpbn_*

Private pbn_ read token returned only when the public bin is created.

expires_at

ISO timestamp when an unclaimed public bin expires.

ttl_seconds

Lifetime of the anonymous bin in seconds.

requests[].id

Captured inbound request ID.

requests[].status

Acceptance or rejection status for the captured request.

requests[].data

Captured headers, body, query, path, and HTTP method.

POST
/v1/public-bins

Create a public request bin

Creates a temporary webhook receiver without requiring a FastHook account.

Create a public request bin input parameters

Create a public request bin does not require path, query, or body parameters.

Create a public request bin notes

  • The token is returned once and is required to read or claim the bin.
  • Anonymous bin creation is rate limited and bins are automatically cleaned up after one hour.
GET
/v1/public-bins/:id

Read a public request bin

Returns captured requests for a temporary bin when the private read token is valid.

Read a public request bin input parameters

Read a public request bin accepts the route, header, query, and body inputs listed below.

Read a public request bin path parameters

idstringRequired

Public request bin source ID. Used by the Read a public request bin operation.

Read a public request bin headers

x-bin-tokenstringRequired

Private read token returned when the bin was created. Used by the Read a public request bin operation.

Read a public request bin notes

  • Responses use Cache-Control: no-store.
  • Expired bins return 410 Gone.
POST
/v1/public-bins/:id/claim

Claim a public request bin

Moves an anonymous bin and its captured requests into the authenticated active team.

Claim a public request bin input parameters

Claim a public request bin accepts the route, header, query, and body inputs listed below.

Claim a public request bin path parameters

idstringRequired

Public request bin source ID. Used by the Claim a public request bin operation.

Claim a public request bin headers

x-bin-tokenstringRequired

Private read token returned when the bin was created. Used by the Claim a public request bin operation.

Claim a public request bin notes

  • Claiming preserves captured requests and turns the temporary bin into a team-owned source.
GET
/v1/bins/:id/stream

Stream bin requests

Upgrades to a WebSocket that emits newly captured requests for an authenticated team bin.

Stream bin requests input parameters

Stream bin requests accepts the route, header, query, and body inputs listed below.

Stream bin requests path parameters

idstringRequired

Resource ID from the route. Used by the Stream bin requests operation.

Stream bin requests headers

UpgradestringRequired

Required WebSocket upgrade header. Used by the Stream bin requests operation.

Sec-WebSocket-ProtocolstringOptional

Optional fh_token.<base64url> and fh_team.<base64url> protocol values for browser WebSocket authentication. Used by the Stream bin requests operation.

Stream bin requests notes

  • A non-WebSocket request returns 426 Upgrade Required.
  • Browser clients can pass credentials through Sec-WebSocket-Protocol using fh_token and fh_team values.

Requests

Requests are inbound webhook deliveries received by FastHook.

Requests response fields

19 fields
idreq_*

Unique inbound request ID. Request IDs use the req_ prefix.

team_id

Team that owns the inbound request.

statusaccepted | rejected

Inbound request outcome derived from acceptance or rejection.

verified

Whether the inbound request passed source verification.

original_event_data_id

Stored payload record containing the original inbound request data.

rejection_cause

Reason the request was rejected, or null when accepted.

ingested_at

ISO timestamp when FastHook received the inbound webhook request.

source_id

Source that received the inbound webhook request.

events_count

Number of outbound events created from the request.

ignored_count

Number of routed events ignored by filtering or rule evaluation.

cli_events_count

Number of local CLI tunnel deliveries created from the request.

is_retry

Whether the request was created by replaying a previous request.

retry_kindsingle | bulk

Retry origin, such as single replay or bulk replay.

retry_parent_request_id

Original request ID when this request was created by a retry.

retry_operation_id

Bulk operation ID that created the retry request, when applicable.

retried_at

ISO timestamp when the request was replayed.

data

Stored inbound request payload, headers, method, path, query, and body when included.

created_at

ISO timestamp when the request record was created.

updated_at

ISO timestamp when the request record was last changed.

GET
/v1/requests

List requests

Returns cursor-paginated inbound requests with deterministic ordering.

List requests input parameters

List requests accepts the route, header, query, and body inputs listed below.

List requests query parameters

fromdatetimeOptional

ISO datetime or relative time for the start of the request window Used by the List requests operation.

todatetimeOptional

ISO datetime or relative time for the end of the request window Used by the List requests operation.

limitintegerOptional

default 100, max 100 Used by the List requests operation.

cursorstringOptional

opaque next_cursor or next value Used by the List requests operation.

statusenumOptional

accepted | rejected Used by the List requests operation.

verifiedbooleanOptional

true | false Used by the List requests operation.

source_idstringOptional

Source ID used to filter inbound requests or routed events. Used by the List requests operation.

connection_idstringOptional

Connection ID used to filter routed requests or events. Used by the List requests operation.

batch_operation_idstringOptional

Bulk operation ID used to filter matching requests or events. Used by the List requests operation.

is_retrybooleanOptional

true | false Used by the List requests operation.

retry_kindenumOptional

single | bulk Used by the List requests operation.

q or search_termstringOptional

search across id and external_id Used by the List requests operation.

includestringOptional

data, optional stored payload data Used by the List requests operation.

List requests notes

  • For request listings, total is exact and total_exact is true when next_cursor is null.
  • When next_cursor is present, total is a lower bound for the current query; use /v1/requests/count for an exact total.
GET
/v1/requests/count

Count requests

Returns the count matching the same request filters.

Count requests input parameters

Count requests accepts the route, header, query, and body inputs listed below.

Count requests query parameters

from or ingested_at[gte]datetimeOptional

ISO datetime or relative lower bound for request ingestion Used by the Count requests operation.

to or ingested_at[lte]datetimeOptional

ISO datetime or relative upper bound for request ingestion Used by the Count requests operation.

statusenumOptional

accepted | rejected Used by the Count requests operation.

verifiedbooleanOptional

true | false Used by the Count requests operation.

source_idstringOptional

Source ID used to filter inbound requests or routed events. Used by the Count requests operation.

connection_idstringOptional

Connection ID used to filter routed requests or events. Used by the Count requests operation.

batch_operation_idstringOptional

Bulk operation ID used to filter matching requests or events. Used by the Count requests operation.

is_retrybooleanOptional

true | false Used by the Count requests operation.

retry_kindenumOptional

single | bulk Used by the Count requests operation.

q or search_termstringOptional

Text search query; search_term is accepted as an alias. Used by the Count requests operation.

GET
/v1/requests/:id

Retrieve a request

Returns one request with stored payload data when available.

Retrieve a request input parameters

Retrieve a request accepts the route, header, query, and body inputs listed below.

Retrieve a request path parameters

idstringRequired

Request ID. Used by the Retrieve a request operation.

GET
/v1/requests/:id/trace

Retrieve request trace

Returns one request with its routed events, ignored branches, delivery attempts, transformation executions, and a sorted timeline for debugging the full webhook path.

Retrieve request trace input parameters

Retrieve request trace accepts the route, header, query, and body inputs listed below.

Retrieve request trace path parameters

idstringRequired

Request ID. Used by the Retrieve request trace operation.

Retrieve request trace notes

  • Use this endpoint when you need the whole request path in one call instead of fetching request, events, ignored events, attempts, and transformations separately.
  • The request.data object contains the original stored inbound payload. Event payload ids and transformation payload ids show where the outbound data changed.
POST
/v1/requests/:id/share

Create a sanitized request share

Creates an expiring public link for a sanitized snapshot of one request. FastHook redacts common secrets and any custom redact_keys before storing the share payload.

Create a sanitized request share input parameters

Create a sanitized request share accepts the route, header, query, and body inputs listed below.

Create a sanitized request share path parameters

idstringRequired

Request ID. Used by the Create a sanitized request share operation.

Create a sanitized request share request body

titlestringOptional

optional short label for the share Used by the Create a sanitized request share operation.

expires_in_seconds, ttl_seconds, or ttlstringOptional

optional TTL in seconds; default 7 days, max 30 days Used by the Create a sanitized request share operation.

expires_atdatetimeOptional

optional ISO datetime; clamped to the maximum TTL Used by the Create a sanitized request share operation.

redact_keys or redactKeysarrayOptional

optional array of additional header, query, or body keys to redact Used by the Create a sanitized request share operation.

include_bodybooleanOptional

optional boolean; set false to omit body content Used by the Create a sanitized request share operation.

GET
/v1/shares/request/:token

Retrieve a sanitized request share

Returns a sanitized request snapshot by share token. This endpoint is public because the token acts as a bearer share link.

Retrieve a sanitized request share input parameters

Retrieve a sanitized request share accepts the route, header, query, and body inputs listed below.

Retrieve a sanitized request share path parameters

tokenstringRequired

Resource ID from the route. Used by the Retrieve a sanitized request share operation.

Retrieve a sanitized request share notes

  • Expired, revoked, missing, or malformed tokens return 404 or 410.
  • The response contains the sanitized snapshot only, not the original stored request payload.
POST
/v1/requests/:id/retry

Retry a request

Queues a source replay for a previously received request. Send modifications to replay with edited method, path, query, headers, or body.

Retry a request input parameters

Retry a request accepts the route, header, query, and body inputs listed below.

Retry a request path parameters

idstringRequired

Request ID. Used by the Retry a request operation.

Retry a request request body

modifications.methodstringOptional

optional HTTP method override Used by the Retry a request operation.

modifications.pathstringOptional

optional request path override Used by the Retry a request operation.

modifications.queryobjectOptional

optional query string or object override Used by the Retry a request operation.

modifications.headersobjectOptional

optional object of replay headers Used by the Retry a request operation.

modifications.bodystringOptional

optional replay body string or JSON value Used by the Retry a request operation.

GET
/v1/requests/:id/events

List request events

Returns delivery events produced from one request.

List request events input parameters

List request events accepts the route, header, query, and body inputs listed below.

List request events path parameters

idstringRequired

Request ID. Used by the List request events operation.

List request events query parameters

statusenumOptional

SCHEDULED | QUEUED | HOLD | SUCCESSFUL | FAILED | CANCELLED Used by the List request events operation.

GET
/v1/requests/:id/ignored_events

List ignored request events

Returns connection-level ignored events for one request.

List ignored request events input parameters

List ignored request events accepts the route, header, query, and body inputs listed below.

List ignored request events path parameters

idstringRequired

Request ID. Used by the List ignored request events operation.

GET
/v1/requests/bulk_operations

List request bulk operations

Returns request bulk retry operations.

List request bulk operations input parameters

List request bulk operations accepts the route, header, query, and body inputs listed below.

List request bulk operations query parameters

bucketenumOptional

all | ongoing | history Used by the List request bulk operations operation.

limitintegerOptional

Maximum number of records to return. Used by the List request bulk operations operation.

POST
/v1/requests/bulk_operations

Create request bulk operation

Creates a bulk retry operation from filters.

Create request bulk operation input parameters

Create request bulk operation accepts the route, header, query, and body inputs listed below.

Create request bulk operation request body

fromdatetimeOptional

Lower bound for matching inbound requests; accepts an ISO datetime or a relative value such as now-1h Used by the Create request bulk operation operation.

todatetimeOptional

Upper bound for matching inbound requests; accepts an ISO datetime or a relative value such as now Used by the Create request bulk operation operation.

statusenumOptional

accepted | rejected Used by the Create request bulk operation operation.

source_idstringOptional

Source ID used to filter inbound requests or routed events. Used by the Create request bulk operation operation.

qstringOptional

Text search query. Used by the Create request bulk operation operation.

POST
/v1/requests/bulk_operations/:id/cancel

Cancel request bulk operation

Cancels a planned or running request bulk operation.

Cancel request bulk operation input parameters

Cancel request bulk operation accepts the route, header, query, and body inputs listed below.

Cancel request bulk operation path parameters

idstringRequired

Bulk operation ID. Used by the Cancel request bulk operation operation.

Events

Events are outbound delivery records created from accepted requests.

Events response fields

28 fields
idevt_*

Unique outbound event ID. Event IDs use the evt_ prefix.

team_id

Team that owns the outbound event.

request_id

Inbound request that produced the outbound event.

connection_id

Connection that routed the event from source to destination.

webhook_id

Legacy alias for the connection ID.

source_id

Source that received the original inbound request.

destination_id

Destination selected for outbound delivery.

cli_id

CLI tunnel identifier when the event targets a local tunnel, otherwise null.

event_data_id

Stored payload record for the outbound event data.

statusSCHEDULED | QUEUED | HOLD | SUCCESSFUL | FAILED | CANCELLED

Current delivery state of the outbound event.

rejection_cause

Reason the event was rejected before delivery, or null when not rejected.

failure_message

Human-readable failure message for failed delivery states.

ignored_reason

Reason the event was ignored by routing rules, or null when delivered.

ingested_at

ISO timestamp inherited from the inbound request ingestion time.

attempts

Number of delivery attempts made for this event.

response_status

HTTP status from the latest delivery response, when available.

last_attempt_at

ISO timestamp of the latest delivery attempt.

next_attempt_at

ISO timestamp when the next retry is scheduled, or null when none is scheduled.

successful_at

ISO timestamp when the event was delivered successfully.

error_code

Machine-readable error code for the latest failed attempt.

is_retry

Whether the event was created by retrying a previous event.

retry_kindsingle | bulk

Retry origin, such as single retry or bulk retry.

retry_parent_event_id

Original event ID when this event was created by a retry.

retry_operation_id

Bulk operation ID that created the retry event, when applicable.

retried_at

ISO timestamp when the event retry was queued.

data

Stored request and response payload data when included.

created_at

ISO timestamp when the event record was created.

updated_at

ISO timestamp when the event record was last changed.

GET
/v1/events

List events

Returns outbound events across the requested date range.

List events input parameters

List events accepts the route, header, query, and body inputs listed below.

List events query parameters

fromdatetimeOptional

ISO datetime or relative time for the start of the event window Used by the List events operation.

todatetimeOptional

ISO datetime or relative time for the end of the event window Used by the List events operation.

limitintegerOptional

default 100, max 100 Used by the List events operation.

cursorstringOptional

opaque next_cursor or next value Used by the List events operation.

statusenumOptional

SCHEDULED | QUEUED | HOLD | SUCCESSFUL | FAILED | CANCELLED Used by the List events operation.

source_idstringOptional

Source ID used to filter inbound requests or routed events. Used by the List events operation.

connection_idstringOptional

Connection ID used to filter routed requests or events. Used by the List events operation.

destination_idstringOptional

Destination ID used to filter outbound events. Used by the List events operation.

batch_operation_idstringOptional

Bulk operation ID used to filter matching requests or events. Used by the List events operation.

q or search_termstringOptional

Text search query; search_term is accepted as an alias. Used by the List events operation.

List events notes

  • For event listings, total is exact and total_exact is true when next_cursor is null.
  • When next_cursor is present, total is a lower bound for the current query; use /v1/events/count for an exact total.
GET
/v1/events/count

Count events

Returns the event count matching filters.

Count events input parameters

Count events accepts the route, header, query, and body inputs listed below.

Count events query parameters

from or ingested_at[gte]datetimeOptional

ISO datetime or relative lower bound for event ingestion Used by the Count events operation.

to or ingested_at[lte]datetimeOptional

ISO datetime or relative upper bound for event ingestion Used by the Count events operation.

statusenumOptional

SCHEDULED | QUEUED | HOLD | SUCCESSFUL | FAILED | CANCELLED Used by the Count events operation.

source_idstringOptional

Source ID used to filter inbound requests or routed events. Used by the Count events operation.

connection_idstringOptional

Connection ID used to filter routed requests or events. Used by the Count events operation.

destination_idstringOptional

Destination ID used to filter outbound events. Used by the Count events operation.

batch_operation_idstringOptional

Bulk operation ID used to filter matching requests or events. Used by the Count events operation.

q or search_termstringOptional

Text search query; search_term is accepted as an alias. Used by the Count events operation.

Count events notes

  • Counts are evaluated against event records directly; source_id and destination_id are event fields.
GET
/v1/events/:id

Retrieve an event

Returns one event with stored payload data when available.

Retrieve an event input parameters

Retrieve an event accepts the route, header, query, and body inputs listed below.

Retrieve an event path parameters

idstringRequired

Event ID. Used by the Retrieve an event operation.

POST
/v1/events/:id/retry

Retry an event

Queues a retry for one outbound event when its source and connection are enabled and the connection is not paused.

Retry an event input parameters

Retry an event accepts the route, header, query, and body inputs listed below.

Retry an event path parameters

idstringRequired

Event ID. Used by the Retry an event operation.

GET
/v1/events/bulk_operations

List event bulk operations

Returns event bulk retry operations.

List event bulk operations input parameters

List event bulk operations accepts the route, header, query, and body inputs listed below.

List event bulk operations query parameters

bucketenumOptional

all | ongoing | history Used by the List event bulk operations operation.

limitintegerOptional

Maximum number of records to return. Used by the List event bulk operations operation.

GET
/v1/events/bulk_operations/:id

Retrieve an event bulk operation

Returns the current status and progress counters for one event bulk retry operation.

Retrieve an event bulk operation input parameters

Retrieve an event bulk operation accepts the route, header, query, and body inputs listed below.

Retrieve an event bulk operation path parameters

idstringRequired

Bulk operation ID. Used by the Retrieve an event bulk operation operation.

POST
/v1/events/bulk_operations

Create event bulk operation

Creates a bulk event retry operation from filters.

Create event bulk operation input parameters

Create event bulk operation accepts the route, header, query, and body inputs listed below.

Create event bulk operation request body

fromdatetimeOptional

Lower bound on event ingestion time; accepts an ISO datetime or a relative value such as now-1h Used by the Create event bulk operation operation.

todatetimeOptional

Upper bound on event ingestion time; accepts an ISO datetime or a relative value such as now Used by the Create event bulk operation operation.

statusenumOptional

SCHEDULED | QUEUED | HOLD | SUCCESSFUL | FAILED | CANCELLED Used by the Create event bulk operation operation.

source_idstringOptional

Source ID used to filter inbound requests or routed events. Used by the Create event bulk operation operation.

connection_idstringOptional

Connection ID used to filter routed requests or events. Used by the Create event bulk operation operation.

destination_idstringOptional

Destination ID used to filter outbound events. Used by the Create event bulk operation operation.

qstringOptional

Text search query. Used by the Create event bulk operation operation.

POST
/v1/events/bulk_operations/:id/cancel

Cancel event bulk operation

Cancels a planned or running event bulk operation.

Cancel event bulk operation input parameters

Cancel event bulk operation accepts the route, header, query, and body inputs listed below.

Cancel event bulk operation path parameters

idstringRequired

Bulk operation ID. Used by the Cancel event bulk operation operation.

Attempts

Attempts are individual outbound delivery attempts for events, including response details, retry context, and timing.

Attempts response fields

23 fields
idatt_*

Unique delivery attempt ID. Attempt IDs use the att_ prefix.

team_id

Team that owns the delivery attempt.

event_id

Outbound event this delivery attempt belongs to.

request_id

Inbound request that produced the attempted event, included when the event record is available.

connection_id

Connection that routed the attempted event, included when the event record is available.

source_id

Source that received the original inbound request, included when the event record is available.

destination_id

Destination that received the delivery attempt.

response_status

HTTP response status returned by the destination, or null when unavailable.

attempt_number

Delivery attempt sequence number for the event.

triggerINITIAL | AUTOMATIC | MANUAL | BULK_RETRY | UNPAUSE

Reason the attempt was created, such as initial delivery, automatic retry, manual retry, bulk retry, or unpause.

error_code

Machine-readable failure code when delivery failed.

body

Response body captured from the destination.

requested_url

Final URL FastHook attempted to deliver to.

http_method

HTTP method used for the delivery attempt.

bulk_retry_id

Bulk retry operation that created the attempt, when applicable.

statusSUCCESSFUL | FAILED

Final delivery attempt result.

successful_at

ISO timestamp when the attempt succeeded, or null when failed.

delivered_at

ISO timestamp when FastHook sent the request to the destination.

responded_at

ISO timestamp when FastHook received the destination response.

delivery_latency

Milliseconds spent preparing and sending the delivery.

response_latency

Milliseconds between delivery and destination response.

created_at

ISO timestamp when the attempt record was created.

updated_at

ISO timestamp when the attempt record was last changed.

GET
/v1/attempts

List attempts

Returns delivery attempts for the active team. Filter by one or more event IDs to inspect delivery history for specific events.

List attempts input parameters

List attempts accepts the route, header, query, and body inputs listed below.

List attempts query parameters

event_id or event_id[]arrayOptional

Event ID filter. Repeat the parameter to filter by multiple events. Used by the List attempts operation.

destination_id or destination_id[]arrayOptional

Destination ID filter. Repeat the parameter to filter by multiple destinations. Used by the List attempts operation.

statusenumOptional

FAILED | SUCCESSFUL Used by the List attempts operation.

fromdatetimeOptional

ISO timestamp or relative time expression such as now-1h. Used by the List attempts operation.

todatetimeOptional

ISO timestamp or relative time expression such as now. Used by the List attempts operation.

qstringOptional

search attempt, event, destination, error code, requested URL, or request ID. Used by the List attempts operation.

order_bystringOptional

Sort field. Currently created_at. Used by the List attempts operation.

direnumOptional

asc | desc, default desc Used by the List attempts operation.

limitintegerOptional

default 100, max 255 Used by the List attempts operation.

nextstringOptional

Opaque cursor from pagination.next. Used by the List attempts operation.

prevstringOptional

Opaque cursor from pagination.prev. Used by the List attempts operation.

List attempts notes

  • Use either next or prev from pagination for cursor pagination.
  • Attempts preserve per-delivery response details while events keep aggregate delivery status.
GET
/v1/attempts/:id

Retrieve an attempt

Returns one delivery attempt for the active team.

Retrieve an attempt input parameters

Retrieve an attempt accepts the route, header, query, and body inputs listed below.

Retrieve an attempt path parameters

idstringRequired

Attempt ID. Used by the Retrieve an attempt operation.

Retrieve an attempt notes

  • Returns 404 when the attempt does not exist or is outside the active team.

Metrics

Metrics endpoints include zero-filled time series for request and event histograms, plus compact 24 hour summaries for source, destination, and transformation list views.

Metrics response fields

43 fields
date_range.start

Start of the returned metrics range.

date_range.end

End of the returned metrics range.

granularity1s | 5s | 10s | 30s | 1m | 5m | 15m | 1h

Time bucket size used for the returned series.

series[].timestamp

Start timestamp for a metrics bucket.

series[].count

Total records counted in the bucket.

series[].accepted_count

Inbound requests accepted in the bucket.

series[].rejected_count

Inbound requests rejected in the bucket.

series[].delivered_count

Outbound events delivered successfully in the bucket.

series[].failed_count

Outbound events failed in the bucket.

series[].queued_count

Outbound events queued in the bucket.

series[].processing_count

Outbound events processing in the bucket.

series[].hold_count

Outbound events held for retry or scheduling in the bucket.

series[].ignored_count

Outbound events ignored in the bucket.

models[].id

models[].id field returned by the Metrics API.

models[].source_id

models[].source_id field returned by the Metrics API.

models[].connection_id

Connection ID for a compact metrics row.

models[].webhook_id

Legacy alias of connection_id.

models[].destination_id

models[].destination_id field returned by the Metrics API.

models[].transformation_id

Transformation ID for a compact metrics row.

models[].requests_24h_count

models[].requests_24h_count field returned by the Metrics API.

models[].requests_24h_total_count

models[].requests_24h_total_count field returned by the Metrics API.

models[].requests_24h_accepted_count

models[].requests_24h_accepted_count field returned by the Metrics API.

models[].requests_24h_rejected_count

models[].requests_24h_rejected_count field returned by the Metrics API.

models[].requests_24h_accepted_bins

models[].requests_24h_accepted_bins field returned by the Metrics API.

models[].requests_24h_rejected_bins

models[].requests_24h_rejected_bins field returned by the Metrics API.

models[].connections_count

Connections that reference the source or transformation in this metrics row.

models[].events_24h_count

Events routed through the connection in the last 24 hours.

models[].events_24h_successful_count

Successful connection events in the last 24 hours.

models[].events_24h_failed_count

Failed connection events in the last 24 hours.

models[].events_24h_pending_count

Scheduled, queued, or held connection events in the last 24 hours.

models[].events_24h_cancelled_count

Cancelled connection events in the last 24 hours.

models[].events_24h_bins

Six buckets, oldest to newest, of all connection events in the last 24 hours.

models[].events_24h_successful_bins

Six buckets of successful connection events.

models[].events_24h_failed_bins

Six buckets of failed connection events.

models[].events_24h_pending_bins

Six buckets of pending connection events.

models[].events_24h_cancelled_bins

Six buckets of cancelled connection events.

models[].attempts_24h_count

models[].attempts_24h_count field returned by the Metrics API.

models[].attempts_24h_bins

models[].attempts_24h_bins field returned by the Metrics API.

models[].executions_24h_count

Transformation executions recorded in the last 24 hours.

models[].executions_24h_successful_count

Transformation executions without error-level logs in the last 24 hours.

models[].executions_24h_failed_count

Transformation executions with error-level logs in the last 24 hours.

models[].executions_24h_successful_bins

Per-model six-bucket history of successful transformation executions during the last 24 hours.

models[].executions_24h_failed_bins

Per-model six-bucket history of failed transformation executions during the last 24 hours.

GET
/v1/metrics/requests

Request metrics

Returns request histogram metrics with request-specific measures.

Request metrics input parameters

Request metrics accepts the route, header, query, and body inputs listed below.

Request metrics query parameters

date_range[start]datetimeRequired

ISO datetime, required Used by the Request metrics operation.

date_range[end]datetimeRequired

ISO datetime, required Used by the Request metrics operation.

granularityenumOptional

1s | 5s | 10s | 30s | 1m | 5m | 15m | 1h Used by the Request metrics operation.

measures[]arrayOptional

count | accepted_count | rejected_count Used by the Request metrics operation.

source_idstringOptional

Source ID used to filter inbound requests or routed events. Used by the Request metrics operation.

batch_operation_idstringOptional

Bulk operation ID used to filter matching requests or events. Used by the Request metrics operation.

statusenumOptional

accepted | rejected Used by the Request metrics operation.

qstringOptional

Text search query. Used by the Request metrics operation.

GET
/v1/metrics/events

Event metrics

Returns event histogram metrics with event-specific measures.

Event metrics input parameters

Event metrics accepts the route, header, query, and body inputs listed below.

Event metrics query parameters

date_range[start]datetimeRequired

ISO datetime, required Used by the Event metrics operation.

date_range[end]datetimeRequired

ISO datetime, required Used by the Event metrics operation.

granularityenumOptional

1s | 5s | 10s | 30s | 1m | 5m | 15m | 1h Used by the Event metrics operation.

measures[]arrayOptional

count | delivered_count | failed_count | queued_count | processing_count | hold_count | ignored_count Used by the Event metrics operation.

source_idstringOptional

Source ID used to filter inbound requests or routed events. Used by the Event metrics operation.

connection_idstringOptional

Connection ID used to filter routed requests or events. Used by the Event metrics operation.

destination_idstringOptional

Destination ID used to filter outbound events. Used by the Event metrics operation.

batch_operation_idstringOptional

Bulk operation ID used to filter matching requests or events. Used by the Event metrics operation.

statusenumOptional

SCHEDULED | QUEUED | HOLD | SUCCESSFUL | FAILED | CANCELLED Used by the Event metrics operation.

qstringOptional

Text search query. Used by the Event metrics operation.

GET
/v1/metrics/sources

Source summary metrics

Returns compact 24 hour request and connection metrics for one or more sources.

Source summary metrics input parameters

Source summary metrics accepts the route, header, query, and body inputs listed below.

Source summary metrics query parameters

idstringOptional

Source ID. Repeat the parameter or pass comma-separated IDs. Used by the Source summary metrics operation.

idsstringOptional

Plural alias for id; accepts repeated or comma-separated source IDs. Used by the Source summary metrics operation.

source_idstringOptional

Singular source-specific alias for id. Used by the Source summary metrics operation.

source_idsstringOptional

Plural source-specific alias for id. Used by the Source summary metrics operation.

Source summary metrics notes

  • Use this after GET /v1/sources so the source list response stays lightweight.
  • Source request bins are ordered oldest to newest across the last 24 hours.
GET
/v1/metrics/connections

Connection summary metrics

Returns compact 24 hour event status metrics for one or more routing connections.

Connection summary metrics input parameters

Connection summary metrics accepts the route, header, query, and body inputs listed below.

Connection summary metrics query parameters

idstringOptional

Connection ID. Repeat the parameter or pass comma-separated IDs. Used by the Connection summary metrics operation.

connection_idstringOptional

Alias for id. Used by the Connection summary metrics operation.

webhook_idstringOptional

Legacy alias for id. Used by the Connection summary metrics operation.

Connection summary metrics notes

  • Use this after GET /v1/connections so the connection list response stays lightweight.
  • Connection event bins are ordered oldest to newest across the last 24 hours.
GET
/v1/metrics/destinations

Destination summary metrics

Returns compact 24 hour delivery attempt metrics for one or more destinations.

Destination summary metrics input parameters

Destination summary metrics accepts the route, header, query, and body inputs listed below.

Destination summary metrics query parameters

idstringOptional

Destination ID. Repeat the parameter or pass comma-separated IDs. Used by the Destination summary metrics operation.

idsstringOptional

Plural alias for id; accepts repeated or comma-separated destination IDs. Used by the Destination summary metrics operation.

destination_idstringOptional

Singular destination-specific alias for id. Used by the Destination summary metrics operation.

destination_idsstringOptional

Plural destination-specific alias for id. Used by the Destination summary metrics operation.

Destination summary metrics notes

  • Use this after GET /v1/destinations so the destination list response stays lightweight.
  • Destination attempt bins are ordered oldest to newest across the last 24 hours.
GET
/v1/metrics/transformations

Transformation summary metrics

Returns compact 24 hour execution and connection metrics for one or more transformations.

Transformation summary metrics input parameters

Transformation summary metrics accepts the route, header, query, and body inputs listed below.

Transformation summary metrics query parameters

idstringOptional

Transformation ID. Repeat the parameter or pass comma-separated IDs. Used by the Transformation summary metrics operation.

idsstringOptional

Plural alias for id; accepts repeated or comma-separated transformation IDs. Used by the Transformation summary metrics operation.

transformation_idstringOptional

Singular transformation-specific alias for id. Used by the Transformation summary metrics operation.

transformation_idsstringOptional

Plural transformation-specific alias for id. Used by the Transformation summary metrics operation.

Transformation summary metrics notes

  • Use this after GET /v1/transformations so the transformation list response stays lightweight.
  • Transformation execution bins are ordered oldest to newest across the last 24 hours.

Errors

Errors are returned as JSON with a status code and a human-readable message.

Errors response fields

4 fields
error

Short error label returned by the API.

code

Machine-readable error code for programmatic handling.

message

Human-readable explanation of the error.

data

Optional structured details for conflict or validation errors.

GET
/v1/sources/:id

Error format

Most errors include error/message fields, and some conflict responses include code and data.

Error format input parameters

Error format accepts the route, header, query, and body inputs listed below.

Error format path parameters

idstringRequired

Source ID. Used by the Error format operation.

Error format notes

  • 401 means authentication is missing or invalid.
  • 403 means the authenticated principal cannot access the team.
  • 404 means the resource or route was not found.
  • 409 is used for duplicate resources or retry conflicts.