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, 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, 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.
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.
/v1/sourcesRouting 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.
Input parameters
Route, header, query, and body inputs accepted by this endpoint.
Headers
Bearer API key or session token.
Team to execute the request against. If omitted, FastHook falls back to team_id query and then the demo team.
Authentication
Create and inspect dashboard sessions. Profile updates require a user session.
Response fields
6 fieldsuser.idStable user identifier for the authenticated FastHook account.
user.emailEmail address attached to the authenticated user.
user.nameDisplay name saved on the user profile.
user.picture_urlProfile image URL when the identity provider supplies one.
session.expires_atISO timestamp when the returned dashboard session token expires.
memberships[].team_idTeam IDs the user can access through the authenticated session.
/v1/auth/google/loginLogin with Google
Authenticates a Google credential and returns a session token.
Input parameters
Route, header, query, and body inputs accepted by this endpoint.
Request body
required Google ID token
optional team ID used to scope the session
/v1/auth/demo/loginLogin with demo user
Creates a demo session for local exploration and demo flows.
Input parameters
This endpoint does not require path, query, or body parameters.
/v1/auth/meGet current profile
Returns the authenticated user, active team, session expiry, and memberships.
Input parameters
Route, header, query, and body inputs accepted by this endpoint.
Headers
Bearer API key or session token.
Team to execute the request against. If omitted, FastHook falls back to team_id query and then the demo team.
/v1/auth/meUpdate profile
Updates editable fields on the current user's profile.
Input parameters
Route, header, query, and body inputs accepted by this endpoint.
Headers
Bearer API key or session token.
Team to execute the request against. If omitted, FastHook falls back to team_id query and then the demo team.
Request body
required string, max 120 characters
Notes
- Both PATCH and PUT are accepted for profile updates.
/v1/auth/logoutLogout
Invalidates the current session token.
Input parameters
Route, header, query, and body inputs accepted by this endpoint.
Headers
Bearer API key or session token.
Team to execute the request against. If omitted, FastHook falls back to team_id query and then the demo team.
Sources
Sources are ingress endpoints. External systems send HTTP requests to source URLs.
Response fields
15 fieldsidsrc_*Unique source ID. Source IDs use the src_ prefix.
team_idTeam that owns the source.
nameHuman-readable source name, unique within the team.
descriptionOptional description for operators and API clients.
typeWEBHOOK or vendor-specificSource implementation type, usually WEBHOOK for public ingress endpoints.
config.auth_typeVerification mode applied to inbound webhook requests.
config.authAuthentication or verification settings for the selected auth type.
config.custom_responseOptional static or rule-based dynamic response FastHook returns to the sender after accepting a source request.
config.modeSource runtime mode. webhook is normal queued source behavior; proxy forwards the source request to an upstream API and returns the upstream response.
config.proxyProxy mode settings for target URL, path/query forwarding, timeout, response body capture, and allowed methods.
config.allowed_http_methodsHTTP methods accepted by the source endpoint.
urlPublic URL that external systems use to send webhooks to this source.
disabled_atISO timestamp when the source was disabled, or null when active.
created_atISO timestamp when the source was created.
updated_atISO timestamp when the source was last changed.
/v1/sourcesList sources
Returns configured sources for the active team.
Input parameters
Route, header, query, and body inputs accepted by this endpoint.
Headers
Bearer API key or session token.
Team to execute the request against. If omitted, FastHook falls back to team_id query and then the demo team.
Query parameters
optional ID filter, comma-separated or repeated
optional exact name filter
optional resource type filter
false excludes disabled resources
name | created_at | updated_at
asc | desc
max 255
/v1/sources/:idRetrieve a source
Returns one source by id.
Input parameters
Route, header, query, and body inputs accepted by this endpoint.
Path parameters
Source ID.
Headers
Bearer API key or session token.
Team to execute the request against. If omitted, FastHook falls back to team_id query and then the demo team.
/v1/sourcesCreate a source
Creates a source. type defaults to WEBHOOK.
Input parameters
Route, header, query, and body inputs accepted by this endpoint.
Headers
Bearer API key or session token.
Team to execute the request against. If omitted, FastHook falls back to team_id query and then the demo team.
Request body
required string
optional string or null
optional string, defaults to WEBHOOK
optional enabled | disabled
optional source URL
BASIC_AUTH | API_KEY | HMAC | null
auth settings for auth_type
optional object or null
json | text | xml
optional fallback response body string
optional ordered dynamic response rules array
optional boolean, false skips the rule
optional method/path/query/headers/body matcher
optional status/content_type/body/headers response override
optional webhook | proxy; proxy makes the source return the upstream response to the original caller
true enables proxy mode
required absolute http(s) upstream URL for proxy sources
optional boolean, defaults to true; appends the inbound request path to target_url
optional boolean, defaults to true; appends inbound query params to target_url
optional 1000-30000 upstream timeout in milliseconds
optional 0-65536 bytes stored in request trace
Request parameter.
HEAD | GET | POST | PUT | PATCH | DELETE array
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.
/v1/sourcesUpsert a source
Creates or updates a source by name.
Input parameters
Route, header, query, and body inputs accepted by this endpoint.
Headers
Bearer API key or session token.
Team to execute the request against. If omitted, FastHook falls back to team_id query and then the demo team.
Request body
required string
optional string or null
optional string, defaults to WEBHOOK
optional enabled | disabled
optional source URL
BASIC_AUTH | API_KEY | HMAC | null
auth settings for auth_type
optional object or null
json | text | xml
optional fallback response body string
optional ordered dynamic response rules array
optional boolean, false skips the rule
optional method/path/query/headers/body matcher
optional status/content_type/body/headers response override
optional webhook | proxy; proxy makes the source return the upstream response to the original caller
true enables proxy mode
required absolute http(s) upstream URL for proxy sources
optional boolean, defaults to true; appends the inbound request path to target_url
optional boolean, defaults to true; appends inbound query params to target_url
optional 1000-30000 upstream timeout in milliseconds
optional 0-65536 bytes stored in request trace
Request parameter.
HEAD | GET | POST | PUT | PATCH | DELETE array
/v1/sources/:idUpdate a source
Partially updates a source. PUT /sources/:id is also supported.
Input parameters
Route, header, query, and body inputs accepted by this endpoint.
Path parameters
Source ID.
Headers
Bearer API key or session token.
Team to execute the request against. If omitted, FastHook falls back to team_id query and then the demo team.
Request body
optional string
optional string or null
optional string
optional enabled | disabled
optional source URL
BASIC_AUTH | API_KEY | HMAC | null
auth settings for auth_type
optional object or null
json | text | xml
optional fallback response body string
optional ordered dynamic response rules array
optional boolean, false skips the rule
optional method/path/query/headers/body matcher
optional status/content_type/body/headers response override
optional webhook | proxy; proxy makes the source return the upstream response to the original caller
true enables proxy mode
required absolute http(s) upstream URL for proxy sources
optional boolean, defaults to true; appends the inbound request path to target_url
optional boolean, defaults to true; appends inbound query params to target_url
optional 1000-30000 upstream timeout in milliseconds
optional 0-65536 bytes stored in request trace
Request parameter.
HEAD | GET | POST | PUT | PATCH | DELETE array
/v1/sources/:id/disableDisable a source
Disables a source and disables related connections.
Input parameters
Route, header, query, and body inputs accepted by this endpoint.
Path parameters
Source ID.
Headers
Bearer API key or session token.
Team to execute the request against. If omitted, FastHook falls back to team_id query and then the demo team.
Notes
- Both PUT and POST are accepted for this action.
/v1/sources/:id/enableEnable a source
Enables a previously disabled source.
Input parameters
Route, header, query, and body inputs accepted by this endpoint.
Path parameters
Source ID.
Headers
Bearer API key or session token.
Team to execute the request against. If omitted, FastHook falls back to team_id query and then the demo team.
Notes
- Both PUT and POST are accepted for this action.
/v1/sources/:idDelete a source
Deletes a source by id.
Input parameters
Route, header, query, and body inputs accepted by this endpoint.
Path parameters
Source ID.
Headers
Bearer API key or session token.
Team to execute the request against. If omitted, FastHook falls back to team_id query and then the demo team.
Destinations
Destinations are outbound endpoints that receive routed events.
Response fields
24 fieldsiddes_*Unique destination ID. Destination IDs use the des_ prefix.
team_idTeam that owns the destination.
nameHuman-readable destination name, unique within the team.
descriptionOptional description for operators and API clients.
typeHTTP | CLI | MOCK_API | GOOGLE_SHEET | GMAIL | SENDGRID_EMAIL | SLACK | DISCORD_WEBHOOK | TELEGRAM_MESSAGE | CLOUDFLARE_R2 | AWS_S3 | TWILIO_WHATSAPP | TWILIO_SMS | TWILIO_MMSDestination implementation type: HTTP, CLI, MOCK_API, 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 configHTTP delivery URL, CLI/mock path, 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_limitOptional delivery rate limit for this destination.
config.rate_limit_periodTime window used by the destination rate limit.
config.http_methodHTTP method used when delivering events to the destination.
config.path_forwarding_disabledWhether inbound request paths are omitted from forwarded delivery URLs.
config.auth_typeAuthentication mode used for outbound deliveries: null/NO_AUTH, FASTHOOK_SIGNATURE, CUSTOM_HEADER, OAUTH2_CLIENT_CREDENTIALS, OAUTH2_AUTHORIZATION_CODE, GOOGLE_OAUTH_REFRESH_TOKEN, SENDGRID_API_KEY, SLACK_BOT_TOKEN, R2_ACCESS_KEY, AWS_ACCESS_KEY, TWILIO_AUTH_TOKEN, or Google Sheet service account auth.
config.authOutbound authentication settings for the selected destination auth type, including OAuth2 token credentials for HTTP destinations.
config.spreadsheet_idGoogle Sheet spreadsheet ID for GOOGLE_SHEET destinations.
config.sheet_nameGoogle Sheet tab name; defaults to Sheet1.
config.value_input_optionGoogle Sheets value input mode: RAW or USER_ENTERED.
config.columnsOptional ordered list of dotted payload or metadata paths to write into sheet columns.
config.include_metadataWhether default metadata is written for GOOGLE_SHEET, CLOUDFLARE_R2, and AWS_S3 destinations when explicit output fields are not configured.
config.key_templateObject key template for CLOUDFLARE_R2 and AWS_S3 destinations.
config.content_typeObject media type for CLOUDFLARE_R2 and AWS_S3 destinations.
disabled_atISO timestamp when the destination was disabled, or null when active.
attempts_24h_countTotal delivery attempts recorded for this destination in the last 24 hours.
attempts_24h_binsRecent delivery-attempt histogram for the destination.
created_atISO timestamp when the destination was created.
updated_atISO timestamp when the destination was last changed.
/v1/destinationsList destinations
Returns configured destinations with 24 hour attempt metrics.
Input parameters
Route, header, query, and body inputs accepted by this endpoint.
Headers
Bearer API key or session token.
Team to execute the request against. If omitted, FastHook falls back to team_id query and then the demo team.
Query parameters
optional ID filter, comma-separated or repeated
optional exact name filter
optional resource type filter
false excludes disabled resources
name | created_at | updated_at
asc | desc
max 255
/v1/destinations/:idRetrieve a destination
Returns a destination by id.
Input parameters
Route, header, query, and body inputs accepted by this endpoint.
Path parameters
Destination ID.
Headers
Bearer API key or session token.
Team to execute the request against. If omitted, FastHook falls back to team_id query and then the demo team.
/v1/destinationsCreate a destination
Creates a destination. type defaults to HTTP.
Input parameters
Route, header, query, and body inputs accepted by this endpoint.
Headers
Bearer API key or session token.
Team to execute the request against. If omitted, FastHook falls back to team_id query and then the demo team.
Request body
required string
optional string or null
HTTP | CLI | MOCK_API | GOOGLE_SHEET | GMAIL | SENDGRID_EMAIL | SLACK | DISCORD_WEBHOOK | TELEGRAM_MESSAGE | CLOUDFLARE_R2 | AWS_S3 | TWILIO_WHATSAPP | TWILIO_SMS | TWILIO_MMS
required destination target
optional positive integer or null
second | minute | hour | day
POST | PUT | PATCH | DELETE
boolean
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
destination auth settings
disables outbound auth
required for CUSTOM_HEADER
required for OAUTH2_CLIENT_CREDENTIALS
required for OAUTH2_AUTHORIZATION_CODE
client_secret_post | client_secret_basic
required for GOOGLE_OAUTH_REFRESH_TOKEN
required for SENDGRID_API_KEY
optional for OAuth2 auth types and GOOGLE_OAUTH_REFRESH_TOKEN
optional for OAUTH2_AUTHORIZATION_CODE
optional for OAuth2 auth types
required for GOOGLE_SHEET
optional for GOOGLE_SHEET, defaults to Sheet1
RAW | USER_ENTERED
optional array of dotted payload or metadata paths
optional boolean
required for GMAIL; string or array of recipient templates
optional for GMAIL
optional for GMAIL, defaults to FastHook event {{event_id}}
optional for GMAIL
GOOGLE_OAUTH_REFRESH_TOKEN for GMAIL
required for GMAIL
https://www.googleapis.com/auth/gmail.send for GMAIL
required for SENDGRID_EMAIL; verified SendGrid sender email or authenticated domain address; fasthook.io sender domains are admin-only
optional display name for SENDGRID_EMAIL
required for SENDGRID_EMAIL; string or array of recipient templates
optional for SENDGRID_EMAIL
optional for SENDGRID_EMAIL, defaults to FastHook event {{event_id}}
optional for SENDGRID_EMAIL
optional for SENDGRID_EMAIL; https://api.sendgrid.com or https://api.eu.sendgrid.com
SENDGRID_API_KEY for SENDGRID_EMAIL
required SG... SendGrid API key for SENDGRID_EMAIL
Request parameter.
required for SLACK; channel name or channel ID, with IDs preferred for private or renamed channels
required message text template for SLACK; also used as Slack fallback text when blocks are present
optional JSON string for Slack Block Kit blocks; rendered template must become an array or an object with a blocks array
SLACK_BOT_TOKEN for SLACK
required xoxb- Slack bot token for SLACK
write; add chat:write.public only when posting to public channels without inviting the app first
write.public is not used
required for DISCORD_WEBHOOK; Discord execute webhook URL
optional message content template for DISCORD_WEBHOOK, defaults to FastHook event {{event_id}} and {{payload}}
optional webhook sender overrides
optional JSON object or array of Discord embeds after template rendering
optional array containing roles, users, and/or everyone; defaults to empty to avoid pings
Request parameter.
required for CLOUDFLARE_R2; client Cloudflare account ID
optional for CLOUDFLARE_R2; defaults to https://<account_id>.r2.cloudflarestorage.com
required for CLOUDFLARE_R2; client R2 bucket name
required for CLOUDFLARE_R2; R2 object key template, defaults to archives/{{team_id}}/{{source_id}}/{{event_id}}.json
optional for CLOUDFLARE_R2; object media type, defaults to application/json
optional for CLOUDFLARE_R2; rendered archive body, otherwise FastHook stores metadata plus payload JSON
optional boolean for CLOUDFLARE_R2 envelope mode
required for CLOUDFLARE_R2; use R2_ACCESS_KEY
required R2 S3 API credentials
optional temporary credential token
required for AWS_S3; AWS region used for SigV4 signing, such as eu-central-1
optional for AWS_S3; defaults to https://s3.<region>.amazonaws.com
required for AWS_S3; client S3 bucket name
optional boolean for AWS_S3 path-style S3 URLs
required for AWS_S3; S3 object key template, defaults to archives/{{team_id}}/{{source_id}}/{{event_id}}.json
optional for AWS_S3; object media type, defaults to application/json
optional for AWS_S3; rendered archive body, otherwise FastHook stores metadata plus payload JSON
optional boolean for AWS_S3 envelope mode
required for AWS_S3; use AWS_ACCESS_KEY
required AWS credentials with s3:PutObject permission
optional temporary AWS session token
required for TWILIO_WHATSAPP; WhatsApp recipient address or template, usually whatsapp:+E.164
required for TWILIO_WHATSAPP unless config.messaging_service_sid is set; Sandbox sender is whatsapp:+14155238886
required message body template for TWILIO_WHATSAPP free-form sends
optional MG... SID; required when config.content_sid is set and common for production sender pools
optional HX... Twilio Content SID for approved WhatsApp templates
optional JSON object string for Twilio ContentVariables, for example {"1":"{{payload.customer.name}}"}
TWILIO_AUTH_TOKEN for TWILIO_WHATSAPP
required for TWILIO_WHATSAPP
Request parameter.
Request parameter.
Request parameter.
required for TWILIO_SMS; SMS recipient phone number or template, usually +E.164
required for TWILIO_SMS unless config.messaging_service_sid is set; SMS-capable Twilio number, short code, or alphanumeric sender ID
required message body template for TWILIO_SMS; supports {{payload.message}} and shorthand {{message}}
optional MG... SID for Twilio Messaging Service sender pools
TWILIO_AUTH_TOKEN for TWILIO_SMS
required for TWILIO_SMS
Request parameter.
Request parameter.
Request parameter.
required for TWILIO_MMS; MMS recipient phone number or template, usually +E.164
required for TWILIO_MMS unless config.messaging_service_sid is set; MMS-capable Twilio number
required message body template for TWILIO_MMS; supports {{payload.message}} and shorthand {{message}}
required array of one to ten public HTTP or HTTPS media URLs; template tokens such as {{payload.media_url}} and {{media_url}} are supported
optional MG... SID for Twilio Messaging Service sender pools
TWILIO_AUTH_TOKEN for TWILIO_MMS
required for TWILIO_MMS
Request parameter.
Request parameter.
Request parameter.
/v1/destinationsUpsert a destination
Creates or updates a destination by name.
Input parameters
Route, header, query, and body inputs accepted by this endpoint.
Headers
Bearer API key or session token.
Team to execute the request against. If omitted, FastHook falls back to team_id query and then the demo team.
Request body
required string
optional string or null
HTTP | CLI | MOCK_API | GOOGLE_SHEET | GMAIL | SENDGRID_EMAIL | SLACK | DISCORD_WEBHOOK | TELEGRAM_MESSAGE | CLOUDFLARE_R2 | AWS_S3 | TWILIO_WHATSAPP | TWILIO_SMS | TWILIO_MMS
required destination target
optional positive integer or null
second | minute | hour | day
POST | PUT | PATCH | DELETE
boolean
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
destination auth settings
disables outbound auth
required for CUSTOM_HEADER
required for OAUTH2_CLIENT_CREDENTIALS
required for OAUTH2_AUTHORIZATION_CODE
client_secret_post | client_secret_basic
required for GOOGLE_OAUTH_REFRESH_TOKEN
required for SENDGRID_API_KEY
optional for OAuth2 auth types and GOOGLE_OAUTH_REFRESH_TOKEN
optional for OAUTH2_AUTHORIZATION_CODE
optional for OAuth2 auth types
required for GOOGLE_SHEET
optional for GOOGLE_SHEET, defaults to Sheet1
RAW | USER_ENTERED
optional array of dotted payload or metadata paths
optional boolean
required for GMAIL; string or array of recipient templates
optional for GMAIL
optional for GMAIL, defaults to FastHook event {{event_id}}
optional for GMAIL
GOOGLE_OAUTH_REFRESH_TOKEN for GMAIL
required for GMAIL
https://www.googleapis.com/auth/gmail.send for GMAIL
required for SENDGRID_EMAIL; verified SendGrid sender email or authenticated domain address; fasthook.io sender domains are admin-only
optional display name for SENDGRID_EMAIL
required for SENDGRID_EMAIL; string or array of recipient templates
optional for SENDGRID_EMAIL
optional for SENDGRID_EMAIL, defaults to FastHook event {{event_id}}
optional for SENDGRID_EMAIL
optional for SENDGRID_EMAIL; https://api.sendgrid.com or https://api.eu.sendgrid.com
SENDGRID_API_KEY for SENDGRID_EMAIL
required SG... SendGrid API key for SENDGRID_EMAIL
Request parameter.
required for SLACK; channel name or channel ID, with IDs preferred for private or renamed channels
required message text template for SLACK; also used as Slack fallback text when blocks are present
optional JSON string for Slack Block Kit blocks; rendered template must become an array or an object with a blocks array
SLACK_BOT_TOKEN for SLACK
required xoxb- Slack bot token for SLACK
write; add chat:write.public only when posting to public channels without inviting the app first
write.public is not used
required for DISCORD_WEBHOOK; Discord execute webhook URL
optional message content template for DISCORD_WEBHOOK, defaults to FastHook event {{event_id}} and {{payload}}
optional webhook sender overrides
optional JSON object or array of Discord embeds after template rendering
optional array containing roles, users, and/or everyone; defaults to empty to avoid pings
Request parameter.
required for CLOUDFLARE_R2; client Cloudflare account ID
optional for CLOUDFLARE_R2; defaults to https://<account_id>.r2.cloudflarestorage.com
required for CLOUDFLARE_R2; client R2 bucket name
required for CLOUDFLARE_R2; R2 object key template, defaults to archives/{{team_id}}/{{source_id}}/{{event_id}}.json
optional for CLOUDFLARE_R2; object media type, defaults to application/json
optional for CLOUDFLARE_R2; rendered archive body, otherwise FastHook stores metadata plus payload JSON
optional boolean for CLOUDFLARE_R2 envelope mode
required for CLOUDFLARE_R2; use R2_ACCESS_KEY
required R2 S3 API credentials
optional temporary credential token
required for AWS_S3; AWS region used for SigV4 signing, such as eu-central-1
optional for AWS_S3; defaults to https://s3.<region>.amazonaws.com
required for AWS_S3; client S3 bucket name
optional boolean for AWS_S3 path-style S3 URLs
required for AWS_S3; S3 object key template, defaults to archives/{{team_id}}/{{source_id}}/{{event_id}}.json
optional for AWS_S3; object media type, defaults to application/json
optional for AWS_S3; rendered archive body, otherwise FastHook stores metadata plus payload JSON
optional boolean for AWS_S3 envelope mode
required for AWS_S3; use AWS_ACCESS_KEY
required AWS credentials with s3:PutObject permission
optional temporary AWS session token
required for TWILIO_WHATSAPP; WhatsApp recipient address or template, usually whatsapp:+E.164
required for TWILIO_WHATSAPP unless config.messaging_service_sid is set; Sandbox sender is whatsapp:+14155238886
required message body template for TWILIO_WHATSAPP free-form sends
optional MG... SID; required when config.content_sid is set and common for production sender pools
optional HX... Twilio Content SID for approved WhatsApp templates
optional JSON object string for Twilio ContentVariables, for example {"1":"{{payload.customer.name}}"}
TWILIO_AUTH_TOKEN for TWILIO_WHATSAPP
required for TWILIO_WHATSAPP
Request parameter.
Request parameter.
Request parameter.
required for TWILIO_SMS; SMS recipient phone number or template, usually +E.164
required for TWILIO_SMS unless config.messaging_service_sid is set; SMS-capable Twilio number, short code, or alphanumeric sender ID
required message body template for TWILIO_SMS; supports {{payload.message}} and shorthand {{message}}
optional MG... SID for Twilio Messaging Service sender pools
TWILIO_AUTH_TOKEN for TWILIO_SMS
required for TWILIO_SMS
Request parameter.
Request parameter.
Request parameter.
required for TWILIO_MMS; MMS recipient phone number or template, usually +E.164
required for TWILIO_MMS unless config.messaging_service_sid is set; MMS-capable Twilio number
required message body template for TWILIO_MMS; supports {{payload.message}} and shorthand {{message}}
required array of one to ten public HTTP or HTTPS media URLs; template tokens such as {{payload.media_url}} and {{media_url}} are supported
optional MG... SID for Twilio Messaging Service sender pools
TWILIO_AUTH_TOKEN for TWILIO_MMS
required for TWILIO_MMS
Request parameter.
Request parameter.
Request parameter.
/v1/destinations/:idReplace a destination
Replaces a destination by id. Send the full destination payload; config is replaced, not merged.
Input parameters
Route, header, query, and body inputs accepted by this endpoint.
Path parameters
Destination ID.
Headers
Bearer API key or session token.
Team to execute the request against. If omitted, FastHook falls back to team_id query and then the demo team.
Request body
required string
optional string or null
HTTP | CLI | MOCK_API | GOOGLE_SHEET | GMAIL | SENDGRID_EMAIL | SLACK | DISCORD_WEBHOOK | TELEGRAM_MESSAGE | CLOUDFLARE_R2 | AWS_S3 | TWILIO_WHATSAPP | TWILIO_SMS | TWILIO_MMS
required destination target
optional positive integer or null
second | minute | hour | day
POST | PUT | PATCH | DELETE
boolean
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
destination auth settings
disables outbound auth
required for CUSTOM_HEADER
required for OAUTH2_CLIENT_CREDENTIALS
required for OAUTH2_AUTHORIZATION_CODE
client_secret_post | client_secret_basic
required for GOOGLE_OAUTH_REFRESH_TOKEN
required for SENDGRID_API_KEY
optional for OAuth2 auth types and GOOGLE_OAUTH_REFRESH_TOKEN
optional for OAUTH2_AUTHORIZATION_CODE
optional for OAuth2 auth types
required for GOOGLE_SHEET
optional for GOOGLE_SHEET, defaults to Sheet1
RAW | USER_ENTERED
optional array of dotted payload or metadata paths
optional boolean
required for GMAIL; string or array of recipient templates
optional for GMAIL
optional for GMAIL, defaults to FastHook event {{event_id}}
optional for GMAIL
GOOGLE_OAUTH_REFRESH_TOKEN for GMAIL
required for GMAIL
https://www.googleapis.com/auth/gmail.send for GMAIL
required for SENDGRID_EMAIL; verified SendGrid sender email or authenticated domain address; fasthook.io sender domains are admin-only
optional display name for SENDGRID_EMAIL
required for SENDGRID_EMAIL; string or array of recipient templates
optional for SENDGRID_EMAIL
optional for SENDGRID_EMAIL, defaults to FastHook event {{event_id}}
optional for SENDGRID_EMAIL
optional for SENDGRID_EMAIL; https://api.sendgrid.com or https://api.eu.sendgrid.com
SENDGRID_API_KEY for SENDGRID_EMAIL
required SG... SendGrid API key for SENDGRID_EMAIL
Request parameter.
required for SLACK; channel name or channel ID, with IDs preferred for private or renamed channels
required message text template for SLACK; also used as Slack fallback text when blocks are present
optional JSON string for Slack Block Kit blocks; rendered template must become an array or an object with a blocks array
SLACK_BOT_TOKEN for SLACK
required xoxb- Slack bot token for SLACK
write; add chat:write.public only when posting to public channels without inviting the app first
write.public is not used
required for DISCORD_WEBHOOK; Discord execute webhook URL
optional message content template for DISCORD_WEBHOOK, defaults to FastHook event {{event_id}} and {{payload}}
optional webhook sender overrides
optional JSON object or array of Discord embeds after template rendering
optional array containing roles, users, and/or everyone; defaults to empty to avoid pings
Request parameter.
required for CLOUDFLARE_R2; client Cloudflare account ID
optional for CLOUDFLARE_R2; defaults to https://<account_id>.r2.cloudflarestorage.com
required for CLOUDFLARE_R2; client R2 bucket name
required for CLOUDFLARE_R2; R2 object key template, defaults to archives/{{team_id}}/{{source_id}}/{{event_id}}.json
optional for CLOUDFLARE_R2; object media type, defaults to application/json
optional for CLOUDFLARE_R2; rendered archive body, otherwise FastHook stores metadata plus payload JSON
optional boolean for CLOUDFLARE_R2 envelope mode
required for CLOUDFLARE_R2; use R2_ACCESS_KEY
required R2 S3 API credentials
optional temporary credential token
required for AWS_S3; AWS region used for SigV4 signing, such as eu-central-1
optional for AWS_S3; defaults to https://s3.<region>.amazonaws.com
required for AWS_S3; client S3 bucket name
optional boolean for AWS_S3 path-style S3 URLs
required for AWS_S3; S3 object key template, defaults to archives/{{team_id}}/{{source_id}}/{{event_id}}.json
optional for AWS_S3; object media type, defaults to application/json
optional for AWS_S3; rendered archive body, otherwise FastHook stores metadata plus payload JSON
optional boolean for AWS_S3 envelope mode
required for AWS_S3; use AWS_ACCESS_KEY
required AWS credentials with s3:PutObject permission
optional temporary AWS session token
required for TWILIO_WHATSAPP; WhatsApp recipient address or template, usually whatsapp:+E.164
required for TWILIO_WHATSAPP unless config.messaging_service_sid is set; Sandbox sender is whatsapp:+14155238886
required message body template for TWILIO_WHATSAPP free-form sends
optional MG... SID; required when config.content_sid is set and common for production sender pools
optional HX... Twilio Content SID for approved WhatsApp templates
optional JSON object string for Twilio ContentVariables, for example {"1":"{{payload.customer.name}}"}
TWILIO_AUTH_TOKEN for TWILIO_WHATSAPP
required for TWILIO_WHATSAPP
Request parameter.
Request parameter.
Request parameter.
required for TWILIO_SMS; SMS recipient phone number or template, usually +E.164
required for TWILIO_SMS unless config.messaging_service_sid is set; SMS-capable Twilio number, short code, or alphanumeric sender ID
required message body template for TWILIO_SMS; supports {{payload.message}} and shorthand {{message}}
optional MG... SID for Twilio Messaging Service sender pools
TWILIO_AUTH_TOKEN for TWILIO_SMS
required for TWILIO_SMS
Request parameter.
Request parameter.
Request parameter.
required for TWILIO_MMS; MMS recipient phone number or template, usually +E.164
required for TWILIO_MMS unless config.messaging_service_sid is set; MMS-capable Twilio number
required message body template for TWILIO_MMS; supports {{payload.message}} and shorthand {{message}}
required array of one to ten public HTTP or HTTPS media URLs; template tokens such as {{payload.media_url}} and {{media_url}} are supported
optional MG... SID for Twilio Messaging Service sender pools
TWILIO_AUTH_TOKEN for TWILIO_MMS
required for TWILIO_MMS
Request parameter.
Request parameter.
Request parameter.
Notes
- Use PATCH /v1/destinations/:id when you only want to change part of the destination config.
/v1/destinations/:idPatch a destination
Partially updates a destination by merging the provided fields with the existing destination.
Input parameters
Route, header, query, and body inputs accepted by this endpoint.
Path parameters
Destination ID.
Headers
Bearer API key or session token.
Team to execute the request against. If omitted, FastHook falls back to team_id query and then the demo team.
Request body
optional string
optional string or null
HTTP | CLI | MOCK_API | GOOGLE_SHEET | GMAIL | SENDGRID_EMAIL | SLACK | DISCORD_WEBHOOK | TELEGRAM_MESSAGE | CLOUDFLARE_R2 | AWS_S3 | TWILIO_WHATSAPP | TWILIO_SMS | TWILIO_MMS
optional destination target
optional positive integer or null
second | minute | hour | day
POST | PUT | PATCH | DELETE
boolean
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
destination auth settings
disables outbound auth
required for CUSTOM_HEADER
required for OAUTH2_CLIENT_CREDENTIALS
required for OAUTH2_AUTHORIZATION_CODE
client_secret_post | client_secret_basic
required for GOOGLE_OAUTH_REFRESH_TOKEN
required for SENDGRID_API_KEY
optional for OAuth2 auth types and GOOGLE_OAUTH_REFRESH_TOKEN
optional for OAUTH2_AUTHORIZATION_CODE
optional for OAuth2 auth types
required for GOOGLE_SHEET
optional for GOOGLE_SHEET, defaults to Sheet1
RAW | USER_ENTERED
optional array of dotted payload or metadata paths
optional boolean
required for GMAIL; string or array of recipient templates
optional for GMAIL
optional for GMAIL, defaults to FastHook event {{event_id}}
optional for GMAIL
GOOGLE_OAUTH_REFRESH_TOKEN for GMAIL
required for GMAIL
https://www.googleapis.com/auth/gmail.send for GMAIL
required for SENDGRID_EMAIL; verified SendGrid sender email or authenticated domain address; fasthook.io sender domains are admin-only
optional display name for SENDGRID_EMAIL
required for SENDGRID_EMAIL; string or array of recipient templates
optional for SENDGRID_EMAIL
optional for SENDGRID_EMAIL, defaults to FastHook event {{event_id}}
optional for SENDGRID_EMAIL
optional for SENDGRID_EMAIL; https://api.sendgrid.com or https://api.eu.sendgrid.com
SENDGRID_API_KEY for SENDGRID_EMAIL
required SG... SendGrid API key for SENDGRID_EMAIL
Request parameter.
required for SLACK; channel name or channel ID, with IDs preferred for private or renamed channels
required message text template for SLACK; also used as Slack fallback text when blocks are present
optional JSON string for Slack Block Kit blocks; rendered template must become an array or an object with a blocks array
SLACK_BOT_TOKEN for SLACK
required xoxb- Slack bot token for SLACK
write; add chat:write.public only when posting to public channels without inviting the app first
write.public is not used
required for DISCORD_WEBHOOK; Discord execute webhook URL
optional message content template for DISCORD_WEBHOOK, defaults to FastHook event {{event_id}} and {{payload}}
optional webhook sender overrides
optional JSON object or array of Discord embeds after template rendering
optional array containing roles, users, and/or everyone; defaults to empty to avoid pings
Request parameter.
required for CLOUDFLARE_R2; client Cloudflare account ID
optional for CLOUDFLARE_R2; defaults to https://<account_id>.r2.cloudflarestorage.com
required for CLOUDFLARE_R2; client R2 bucket name
required for CLOUDFLARE_R2; R2 object key template, defaults to archives/{{team_id}}/{{source_id}}/{{event_id}}.json
optional for CLOUDFLARE_R2; object media type, defaults to application/json
optional for CLOUDFLARE_R2; rendered archive body, otherwise FastHook stores metadata plus payload JSON
optional boolean for CLOUDFLARE_R2 envelope mode
required for CLOUDFLARE_R2; use R2_ACCESS_KEY
required R2 S3 API credentials
optional temporary credential token
required for AWS_S3; AWS region used for SigV4 signing, such as eu-central-1
optional for AWS_S3; defaults to https://s3.<region>.amazonaws.com
required for AWS_S3; client S3 bucket name
optional boolean for AWS_S3 path-style S3 URLs
required for AWS_S3; S3 object key template, defaults to archives/{{team_id}}/{{source_id}}/{{event_id}}.json
optional for AWS_S3; object media type, defaults to application/json
optional for AWS_S3; rendered archive body, otherwise FastHook stores metadata plus payload JSON
optional boolean for AWS_S3 envelope mode
required for AWS_S3; use AWS_ACCESS_KEY
required AWS credentials with s3:PutObject permission
optional temporary AWS session token
required for TWILIO_WHATSAPP; WhatsApp recipient address or template, usually whatsapp:+E.164
required for TWILIO_WHATSAPP unless config.messaging_service_sid is set; Sandbox sender is whatsapp:+14155238886
required message body template for TWILIO_WHATSAPP free-form sends
optional MG... SID; required when config.content_sid is set and common for production sender pools
optional HX... Twilio Content SID for approved WhatsApp templates
optional JSON object string for Twilio ContentVariables, for example {"1":"{{payload.customer.name}}"}
TWILIO_AUTH_TOKEN for TWILIO_WHATSAPP
required for TWILIO_WHATSAPP
Request parameter.
Request parameter.
Request parameter.
required for TWILIO_SMS; SMS recipient phone number or template, usually +E.164
required for TWILIO_SMS unless config.messaging_service_sid is set; SMS-capable Twilio number, short code, or alphanumeric sender ID
required message body template for TWILIO_SMS; supports {{payload.message}} and shorthand {{message}}
optional MG... SID for Twilio Messaging Service sender pools
TWILIO_AUTH_TOKEN for TWILIO_SMS
required for TWILIO_SMS
Request parameter.
Request parameter.
Request parameter.
required for TWILIO_MMS; MMS recipient phone number or template, usually +E.164
required for TWILIO_MMS unless config.messaging_service_sid is set; MMS-capable Twilio number
required message body template for TWILIO_MMS; supports {{payload.message}} and shorthand {{message}}
required array of one to ten public HTTP or HTTPS media URLs; template tokens such as {{payload.media_url}} and {{media_url}} are supported
optional MG... SID for Twilio Messaging Service sender pools
TWILIO_AUTH_TOKEN for TWILIO_MMS
required for TWILIO_MMS
Request parameter.
Request parameter.
Request parameter.
Notes
- The CLI command fasthook destinations update uses this endpoint.
/v1/destinations/:id/disableDisable a destination
Disables an outbound destination.
Input parameters
Route, header, query, and body inputs accepted by this endpoint.
Path parameters
Destination ID.
Headers
Bearer API key or session token.
Team to execute the request against. If omitted, FastHook falls back to team_id query and then the demo team.
Notes
- Both PUT and POST are accepted for this action.
/v1/destinations/:id/enableEnable a destination
Enables a previously disabled destination.
Input parameters
Route, header, query, and body inputs accepted by this endpoint.
Path parameters
Destination ID.
Headers
Bearer API key or session token.
Team to execute the request against. If omitted, FastHook falls back to team_id query and then the demo team.
Notes
- Both PUT and POST are accepted for this action.
/v1/destinations/:idDelete a destination
Deletes a destination by id.
Input parameters
Route, header, query, and body inputs accepted by this endpoint.
Path parameters
Destination ID.
Headers
Bearer API key or session token.
Team to execute the request against. If omitted, FastHook falls back to team_id query and then the demo team.
Transformations
Transformations are reusable JavaScript snippets that reshape requests before delivery.
Response fields
15 fieldsidtrs_*Unique transformation ID. Transformation IDs use the trs_ prefix.
team_idTeam that owns the transformation.
nameHuman-readable transformation name, unique within the team.
codeJavaScript code executed to reshape a webhook request before delivery.
envKey-value environment variables available to the transformation runtime.
code_hashHash of the current transformation code for change detection.
deleted_atISO timestamp when the transformation was deleted, or null when active.
executions_24h_countNumber of transformation executions recorded in the last 24 hours.
executions_24h_successful_countNumber of transformation executions without error-level logs in the last 24 hours.
executions_24h_failed_countNumber of transformation executions with error-level logs in the last 24 hours.
executions_24h_successful_binsSix buckets, oldest to newest, of successful transformation executions over the last 24 hours.
executions_24h_failed_binsSix buckets, oldest to newest, of failed transformation executions over the last 24 hours.
connections_countNumber of routing connections that reference this transformation.
created_atISO timestamp when the transformation was created.
updated_atISO timestamp when the transformation was last changed.
/v1/transformationsList transformations
Returns reusable transformation rules without loading execution or connection metrics by default.
Input parameters
Route, header, query, and body inputs accepted by this endpoint.
Headers
Bearer API key or session token.
Team to execute the request against. If omitted, FastHook falls back to team_id query and then the demo team.
Query parameters
optional ID filter, comma-separated or repeated
optional exact name filter
true includes legacy execution and connection counts
name | created_at | updated_at
asc | desc
max 255
Notes
- Use GET /v1/metrics/transformations after listing visible transformations to load table counts separately.
/v1/transformationsCreate a transformation
Creates a new transformation with code.
Input parameters
Route, header, query, and body inputs accepted by this endpoint.
Headers
Bearer API key or session token.
Team to execute the request against. If omitted, FastHook falls back to team_id query and then the demo team.
Request body
required
required
optional object
/v1/transformationsUpsert a transformation
Upserts a transformation by name.
Input parameters
Route, header, query, and body inputs accepted by this endpoint.
Headers
Bearer API key or session token.
Team to execute the request against. If omitted, FastHook falls back to team_id query and then the demo team.
Request body
required string
required string
optional object
/v1/transformations/runRun a transformation
Runs inline code or a saved transformation against a request sample.
Input parameters
Route, header, query, and body inputs accepted by this endpoint.
Headers
Bearer API key or session token.
Team to execute the request against. If omitted, FastHook falls back to team_id query and then the demo team.
Request body
optional saved transformation ID
optional JavaScript code when transformation_id is omitted
optional object of string variables
optional object
optional JSON value
optional object or query string
optional path string
optional HTTP method
/v1/transformations/:idRetrieve a transformation
Returns a transformation by id.
Input parameters
Route, header, query, and body inputs accepted by this endpoint.
Path parameters
Transformation ID.
Headers
Bearer API key or session token.
Team to execute the request against. If omitted, FastHook falls back to team_id query and then the demo team.
/v1/transformations/:idUpdate a transformation
Updates transformation code or metadata.
Input parameters
Route, header, query, and body inputs accepted by this endpoint.
Path parameters
Transformation ID.
Headers
Bearer API key or session token.
Team to execute the request against. If omitted, FastHook falls back to team_id query and then the demo team.
Request body
optional string
optional string
optional object
/v1/transformations/:idDelete a transformation
Deletes a transformation by id.
Input parameters
Route, header, query, and body inputs accepted by this endpoint.
Path parameters
Transformation ID.
Headers
Bearer API key or session token.
Team to execute the request against. If omitted, FastHook falls back to team_id query and then the demo team.
/v1/transformations/:id/executionsList transformation executions
Returns run metadata and logs for executions of a transformation.
Input parameters
Route, header, query, and body inputs accepted by this endpoint.
Path parameters
Transformation ID.
Headers
Bearer API key or session token.
Team to execute the request against. If omitted, FastHook falls back to team_id query and then the demo team.
Notes
- Execution models include team_id for the owning team.
/v1/transformations/:id/executions/:executionIdRetrieve a transformation execution
Returns one execution with logs and original/transformed event data.
Input parameters
Route, header, query, and body inputs accepted by this endpoint.
Path parameters
Transformation ID.
Transformation execution ID.
Headers
Bearer API key or session token.
Team to execute the request against. If omitted, FastHook falls back to team_id query and then the demo team.
Notes
- The response includes team_id for the owning team.
Connections
Connections route events from one source to one destination and apply rules.
Response fields
11 fieldsidweb_*Unique connection ID. Connection IDs use the web_ prefix.
team_idTeam that owns the connection.
nameHuman-readable connection name, unique within the team.
descriptionOptional description for operators and API clients.
sourceSource object that receives inbound webhook requests.
destinationDestination object that receives routed event deliveries.
rulesOrdered connection rules applied during routing and delivery.
disabled_atISO timestamp when the connection was disabled, or null when active.
paused_atISO timestamp when event delivery was paused, or null when unpaused.
created_atISO timestamp when the connection was created.
updated_atISO timestamp when the connection was last changed.
/v1/connectionsList connections
Returns routing connections for the active team.
Input parameters
Route, header, query, and body inputs accepted by this endpoint.
Headers
Bearer API key or session token.
Team to execute the request against. If omitted, FastHook falls back to team_id query and then the demo team.
Query parameters
name | created_at | updated_at
asc | desc
max 255
/v1/connections/:idRetrieve a connection
Returns one connection with full source and destination objects.
Input parameters
Route, header, query, and body inputs accepted by this endpoint.
Path parameters
Connection ID.
Headers
Bearer API key or session token.
Team to execute the request against. If omitted, FastHook falls back to team_id query and then the demo team.
/v1/connectionsCreate a connection
Creates a connection between a source and destination.
Input parameters
Route, header, query, and body inputs accepted by this endpoint.
Headers
Bearer API key or session token.
Team to execute the request against. If omitted, FastHook falls back to team_id query and then the demo team.
Request body
required string
optional string or null
required source ID
required destination ID
optional ISO datetime or null
optional ISO datetime or null
optional array of retry, delay, filter, transform, and deduplicate rules
/v1/connectionsUpsert a connection
Upserts by id, otherwise by source_id and name.
Input parameters
Route, header, query, and body inputs accepted by this endpoint.
Headers
Bearer API key or session token.
Team to execute the request against. If omitted, FastHook falls back to team_id query and then the demo team.
Request body
optional connection ID to upsert directly
required string when id is omitted
optional string or null
required source ID
required destination ID
optional ISO datetime or null
optional ISO datetime or null
optional array of retry, delay, filter, transform, and deduplicate rules
/v1/connections/:idUpdate a connection
Partially updates a connection. PUT /connections/:id is also supported.
Input parameters
Route, header, query, and body inputs accepted by this endpoint.
Path parameters
Connection ID.
Headers
Bearer API key or session token.
Team to execute the request against. If omitted, FastHook falls back to team_id query and then the demo team.
Request body
optional string
optional string or null
optional source ID
optional destination ID
optional ISO datetime or null
optional ISO datetime or null
optional array of retry, delay, filter, transform, and deduplicate rules
/v1/connections/:id/latest-inputRetrieve latest input
Returns the latest request input seen by the connection source.
Input parameters
Route, header, query, and body inputs accepted by this endpoint.
Path parameters
Connection ID.
Headers
Bearer API key or session token.
Team to execute the request against. If omitted, FastHook falls back to team_id query and then the demo team.
/v1/connections/:id/pausePause a connection
Pauses delivery for a connection.
Input parameters
Route, header, query, and body inputs accepted by this endpoint.
Path parameters
Connection ID.
Headers
Bearer API key or session token.
Team to execute the request against. If omitted, FastHook falls back to team_id query and then the demo team.
/v1/connections/:id/unpauseUnpause a connection
Resumes delivery for a paused connection.
Input parameters
Route, header, query, and body inputs accepted by this endpoint.
Path parameters
Connection ID.
Headers
Bearer API key or session token.
Team to execute the request against. If omitted, FastHook falls back to team_id query and then the demo team.
/v1/connections/:id/disableDisable a connection
Disables routing for a connection.
Input parameters
Route, header, query, and body inputs accepted by this endpoint.
Path parameters
Connection ID.
Headers
Bearer API key or session token.
Team to execute the request against. If omitted, FastHook falls back to team_id query and then the demo team.
Notes
- Both PUT and POST are accepted for this action.
/v1/connections/:id/enableEnable a connection
Enables routing for a connection.
Input parameters
Route, header, query, and body inputs accepted by this endpoint.
Path parameters
Connection ID.
Headers
Bearer API key or session token.
Team to execute the request against. If omitted, FastHook falls back to team_id query and then the demo team.
Notes
- Both PUT and POST are accepted for this action.
/v1/connections/:idDelete a connection
Deletes a connection by id.
Input parameters
Route, header, query, and body inputs accepted by this endpoint.
Path parameters
Connection ID.
Headers
Bearer API key or session token.
Team to execute the request against. If omitted, FastHook falls back to team_id query and then the demo team.
Connection Rules
Rules live inside connection.rules and are evaluated in normalized order.
Response fields
15 fieldstyperetry | delay | filter | transform | transformation | deduplicateRule type that determines how FastHook evaluates or changes delivery behavior.
strategyRetry scheduling strategy, such as exponential backoff.
intervalBase retry interval in milliseconds.
countMaximum number of retry attempts for the retry rule.
response_status_codesHTTP response status codes or ranges that trigger retry behavior.
delayDelivery delay in milliseconds for delay rules.
headersHeader predicates used by filter or deduplication rules.
bodyBody predicates used by filter or deduplication rules.
queryQuery-string predicates used by filter rules.
pathPath predicate used by filter rules.
transformation_idSaved transformation ID linked to a transform rule.
transformationInline transformation object that can be upserted and linked to the connection.
windowDeduplication window in milliseconds.
include_fieldsRequest fields included when building a deduplication key.
exclude_fieldsRequest fields excluded when building a deduplication key.
/v1/connections/:idRule payload
Supported rule types are retry, delay, filter, transform, transformation, and deduplicate.
Input parameters
Route, header, query, and body inputs accepted by this endpoint.
Path parameters
Connection ID.
Headers
Bearer API key or session token.
Team to execute the request against. If omitted, FastHook falls back to team_id query and then the demo team.
Request body
Request parameter.
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.
Response fields
9 fieldsteam_idTeam that owns the project secrets.
created_atISO timestamp when the secret pair was created.
updated_atISO timestamp when either secret was last changed.
api_key.valueProject API key used to authenticate Control API requests.
api_key.masked_valueRedacted API key display value.
api_key.last_rotated_atISO timestamp when the API key was last rotated.
signing_secret.valueSecret used to sign FastHook outbound webhook deliveries.
signing_secret.masked_valueRedacted signing secret display value.
signing_secret.last_rotated_atISO timestamp when the signing secret was last rotated.
/v1/project-secretsGet project secrets
Returns the team's project API key and signing secret. A missing pair is created lazily.
Input parameters
Route, header, query, and body inputs accepted by this endpoint.
Headers
Bearer API key or session token.
Team to execute the request against. If omitted, FastHook falls back to team_id query and then the demo team.
/v1/project-secretsUpdate project secrets
Updates one or both caller-provided secret values.
Input parameters
Route, header, query, and body inputs accepted by this endpoint.
Headers
Bearer API key or session token.
Team to execute the request against. If omitted, FastHook falls back to team_id query and then the demo team.
Request body
optional string, min 12
optional string, min 12
Notes
- At least one of api_key or signing_secret is required.
/v1/project-secrets/rotateRotate project secrets
Rotates one or both generated secret values.
Input parameters
Route, header, query, and body inputs accepted by this endpoint.
Headers
Bearer API key or session token.
Team to execute the request against. If omitted, FastHook falls back to team_id query and then the demo team.
Request body
optional array of api_key and signing_secret
Notes
- Empty body rotates both secrets.
- Use rotate=["signing_secret"] to rotate only the signing secret.
Requests
Requests are inbound webhook deliveries received by FastHook.
Response fields
19 fieldsidreq_*Unique inbound request ID. Request IDs use the req_ prefix.
team_idTeam that owns the inbound request.
statusaccepted | rejectedInbound request outcome derived from acceptance or rejection.
verifiedWhether the inbound request passed source verification.
original_event_data_idStored payload record containing the original inbound request data.
rejection_causeReason the request was rejected, or null when accepted.
ingested_atISO timestamp when FastHook received the inbound webhook request.
source_idSource that received the inbound webhook request.
events_countNumber of outbound events created from the request.
ignored_countNumber of routed events ignored by filtering or rule evaluation.
cli_events_countNumber of local CLI tunnel deliveries created from the request.
is_retryWhether the request was created by replaying a previous request.
retry_kindsingle | bulkRetry origin, such as single replay or bulk replay.
retry_parent_request_idOriginal request ID when this request was created by a retry.
retry_operation_idBulk operation ID that created the retry request, when applicable.
retried_atISO timestamp when the request was replayed.
dataStored inbound request payload, headers, method, path, query, and body when included.
created_atISO timestamp when the request record was created.
updated_atISO timestamp when the request record was last changed.
/v1/requestsList requests
Returns cursor-paginated inbound requests with deterministic ordering.
Input parameters
Route, header, query, and body inputs accepted by this endpoint.
Headers
Bearer API key or session token.
Team to execute the request against. If omitted, FastHook falls back to team_id query and then the demo team.
Query parameters
ISO datetime or relative time
ISO datetime or relative time
default 100, max 100
opaque next_cursor or next value
accepted | rejected
true | false
Source ID used to filter inbound requests or routed events.
Connection ID used to filter routed requests or events.
Bulk operation ID used to filter matching requests or events.
true | false
single | bulk
search across id and external_id
data, optional stored payload data
Notes
- When next_cursor is null, total is exact and total_exact is true.
- When next_cursor is present, total is a lower bound for the current query; use /v1/requests/count for an exact total.
/v1/requests/countCount requests
Returns the count matching the same request filters.
Input parameters
Route, header, query, and body inputs accepted by this endpoint.
Headers
Bearer API key or session token.
Team to execute the request against. If omitted, FastHook falls back to team_id query and then the demo team.
Query parameters
ISO datetime or relative time
ISO datetime or relative time
accepted | rejected
true | false
Source ID used to filter inbound requests or routed events.
Connection ID used to filter routed requests or events.
Bulk operation ID used to filter matching requests or events.
true | false
single | bulk
Text search query; search_term is accepted as an alias.
/v1/requests/:idRetrieve a request
Returns one request with stored payload data when available.
Input parameters
Route, header, query, and body inputs accepted by this endpoint.
Path parameters
Request ID.
Headers
Bearer API key or session token.
Team to execute the request against. If omitted, FastHook falls back to team_id query and then the demo team.
/v1/requests/:id/traceRetrieve 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.
Input parameters
Route, header, query, and body inputs accepted by this endpoint.
Path parameters
Request ID.
Headers
Bearer API key or session token.
Team to execute the request against. If omitted, FastHook falls back to team_id query and then the demo team.
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.
/v1/requests/:id/shareCreate 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.
Input parameters
Route, header, query, and body inputs accepted by this endpoint.
Path parameters
Request ID.
Headers
Bearer API key or session token.
Team to execute the request against. If omitted, FastHook falls back to team_id query and then the demo team.
Request body
optional short label for the share
optional TTL in seconds; default 7 days, max 30 days
optional ISO datetime; clamped to the maximum TTL
optional array of additional header, query, or body keys to redact
optional boolean; set false to omit body content
/v1/shares/request/:tokenRetrieve 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.
Input parameters
Route, header, query, and body inputs accepted by this endpoint.
Path parameters
Resource ID from the route.
Notes
- Expired, revoked, missing, or malformed tokens return 404 or 410.
- The response contains the sanitized snapshot only, not the original stored request payload.
/v1/requests/:id/retryRetry a request
Queues a source replay for a previously received request. Send modifications to replay with edited method, path, query, headers, or body.
Input parameters
Route, header, query, and body inputs accepted by this endpoint.
Path parameters
Request ID.
Headers
Bearer API key or session token.
Team to execute the request against. If omitted, FastHook falls back to team_id query and then the demo team.
Request body
optional HTTP method override
optional request path override
optional query string or object override
optional object of replay headers
optional replay body string or JSON value
/v1/requests/:id/eventsList request events
Returns delivery events produced from one request.
Input parameters
Route, header, query, and body inputs accepted by this endpoint.
Path parameters
Request ID.
Headers
Bearer API key or session token.
Team to execute the request against. If omitted, FastHook falls back to team_id query and then the demo team.
Query parameters
SCHEDULED | QUEUED | HOLD | SUCCESSFUL | FAILED | CANCELLED
/v1/requests/:id/ignored_eventsList ignored request events
Returns connection-level ignored events for one request.
Input parameters
Route, header, query, and body inputs accepted by this endpoint.
Path parameters
Request ID.
Headers
Bearer API key or session token.
Team to execute the request against. If omitted, FastHook falls back to team_id query and then the demo team.
/v1/requests/bulk_operationsList request bulk operations
Returns request bulk retry operations.
Input parameters
Route, header, query, and body inputs accepted by this endpoint.
Headers
Bearer API key or session token.
Team to execute the request against. If omitted, FastHook falls back to team_id query and then the demo team.
Query parameters
all | ongoing | history
Maximum number of records to return.
/v1/requests/bulk_operationsCreate request bulk operation
Creates a bulk retry operation from filters.
Input parameters
Route, header, query, and body inputs accepted by this endpoint.
Headers
Bearer API key or session token.
Team to execute the request against. If omitted, FastHook falls back to team_id query and then the demo team.
Request body
ISO datetime or relative time, e.g. 2026-04-17T00:00:00.000Z or now-1h
ISO datetime or relative time, e.g. 2026-04-17T23:59:59.999Z or now
accepted | rejected
Source ID used to filter inbound requests or routed events.
Text search query.
/v1/requests/bulk_operations/:id/cancelCancel request bulk operation
Cancels a planned or running request bulk operation.
Input parameters
Route, header, query, and body inputs accepted by this endpoint.
Path parameters
Bulk operation ID.
Headers
Bearer API key or session token.
Team to execute the request against. If omitted, FastHook falls back to team_id query and then the demo team.
Events
Events are outbound delivery records created from accepted requests.
Response fields
28 fieldsidevt_*Unique outbound event ID. Event IDs use the evt_ prefix.
team_idTeam that owns the outbound event.
request_idInbound request that produced the outbound event.
connection_idConnection that routed the event from source to destination.
webhook_idLegacy alias for the connection ID.
source_idSource that received the original inbound request.
destination_idDestination selected for outbound delivery.
cli_idCLI tunnel identifier when the event targets a local tunnel, otherwise null.
event_data_idStored payload record for the outbound event data.
statusSCHEDULED | QUEUED | HOLD | SUCCESSFUL | FAILED | CANCELLEDCurrent delivery state of the outbound event.
rejection_causeReason the event was rejected before delivery, or null when not rejected.
failure_messageHuman-readable failure message for failed delivery states.
ignored_reasonReason the event was ignored by routing rules, or null when delivered.
ingested_atISO timestamp inherited from the inbound request ingestion time.
attemptsNumber of delivery attempts made for this event.
response_statusHTTP status from the latest delivery response, when available.
last_attempt_atISO timestamp of the latest delivery attempt.
next_attempt_atISO timestamp when the next retry is scheduled, or null when none is scheduled.
successful_atISO timestamp when the event was delivered successfully.
error_codeMachine-readable error code for the latest failed attempt.
is_retryWhether the event was created by retrying a previous event.
retry_kindsingle | bulkRetry origin, such as single retry or bulk retry.
retry_parent_event_idOriginal event ID when this event was created by a retry.
retry_operation_idBulk operation ID that created the retry event, when applicable.
retried_atISO timestamp when the event retry was queued.
dataStored request and response payload data when included.
created_atISO timestamp when the event record was created.
updated_atISO timestamp when the event record was last changed.
/v1/eventsList events
Returns outbound events across the requested date range.
Input parameters
Route, header, query, and body inputs accepted by this endpoint.
Headers
Bearer API key or session token.
Team to execute the request against. If omitted, FastHook falls back to team_id query and then the demo team.
Query parameters
ISO datetime or relative time
ISO datetime or relative time
default 100, max 100
opaque next_cursor or next value
SCHEDULED | QUEUED | HOLD | SUCCESSFUL | FAILED | CANCELLED
Source ID used to filter inbound requests or routed events.
Connection ID used to filter routed requests or events.
Destination ID used to filter outbound events.
Bulk operation ID used to filter matching requests or events.
Text search query; search_term is accepted as an alias.
Notes
- When next_cursor is null, total is exact and total_exact is true.
- When next_cursor is present, total is a lower bound for the current query; use /v1/events/count for an exact total.
/v1/events/countCount events
Returns the event count matching filters.
Input parameters
Route, header, query, and body inputs accepted by this endpoint.
Headers
Bearer API key or session token.
Team to execute the request against. If omitted, FastHook falls back to team_id query and then the demo team.
Query parameters
ISO datetime or relative time
ISO datetime or relative time
SCHEDULED | QUEUED | HOLD | SUCCESSFUL | FAILED | CANCELLED
Source ID used to filter inbound requests or routed events.
Connection ID used to filter routed requests or events.
Destination ID used to filter outbound events.
Bulk operation ID used to filter matching requests or events.
Text search query; search_term is accepted as an alias.
Notes
- Counts are evaluated against event records directly; source_id and destination_id are event fields.
/v1/events/:idRetrieve an event
Returns one event with stored payload data when available.
Input parameters
Route, header, query, and body inputs accepted by this endpoint.
Path parameters
Event ID.
Headers
Bearer API key or session token.
Team to execute the request against. If omitted, FastHook falls back to team_id query and then the demo team.
/v1/events/:id/retryRetry an event
Queues a retry for one outbound event when its source and connection are enabled and the connection is not paused.
Input parameters
Route, header, query, and body inputs accepted by this endpoint.
Path parameters
Event ID.
Headers
Bearer API key or session token.
Team to execute the request against. If omitted, FastHook falls back to team_id query and then the demo team.
/v1/events/bulk_operationsList event bulk operations
Returns event bulk retry operations.
Input parameters
Route, header, query, and body inputs accepted by this endpoint.
Headers
Bearer API key or session token.
Team to execute the request against. If omitted, FastHook falls back to team_id query and then the demo team.
Query parameters
all | ongoing | history
Maximum number of records to return.
/v1/events/bulk_operationsCreate event bulk operation
Creates a bulk event retry operation from filters.
Input parameters
Route, header, query, and body inputs accepted by this endpoint.
Headers
Bearer API key or session token.
Team to execute the request against. If omitted, FastHook falls back to team_id query and then the demo team.
Request body
ISO datetime or relative time, e.g. 2026-04-17T00:00:00.000Z or now-1h
ISO datetime or relative time, e.g. 2026-04-17T23:59:59.999Z or now
SCHEDULED | QUEUED | HOLD | SUCCESSFUL | FAILED | CANCELLED
Source ID used to filter inbound requests or routed events.
Connection ID used to filter routed requests or events.
Destination ID used to filter outbound events.
Text search query.
/v1/events/bulk_operations/:id/cancelCancel event bulk operation
Cancels a planned or running event bulk operation.
Input parameters
Route, header, query, and body inputs accepted by this endpoint.
Path parameters
Bulk operation ID.
Headers
Bearer API key or session token.
Team to execute the request against. If omitted, FastHook falls back to team_id query and then the demo team.
Attempts
Attempts are individual outbound delivery attempts for events, including response details, retry context, and timing.
Response fields
23 fieldsidatt_*Unique delivery attempt ID. Attempt IDs use the att_ prefix.
team_idTeam that owns the delivery attempt.
event_idOutbound event this delivery attempt belongs to.
request_idInbound request that produced the attempted event, included when the event record is available.
connection_idConnection that routed the attempted event, included when the event record is available.
source_idSource that received the original inbound request, included when the event record is available.
destination_idDestination that received the delivery attempt.
response_statusHTTP response status returned by the destination, or null when unavailable.
attempt_numberDelivery attempt sequence number for the event.
triggerINITIAL | AUTOMATIC | MANUAL | BULK_RETRY | UNPAUSEReason the attempt was created, such as initial delivery, automatic retry, manual retry, bulk retry, or unpause.
error_codeMachine-readable failure code when delivery failed.
bodyResponse body captured from the destination.
requested_urlFinal URL FastHook attempted to deliver to.
http_methodHTTP method used for the delivery attempt.
bulk_retry_idBulk retry operation that created the attempt, when applicable.
statusSUCCESSFUL | FAILEDFinal delivery attempt result.
successful_atISO timestamp when the attempt succeeded, or null when failed.
delivered_atISO timestamp when FastHook sent the request to the destination.
responded_atISO timestamp when FastHook received the destination response.
delivery_latencyMilliseconds spent preparing and sending the delivery.
response_latencyMilliseconds between delivery and destination response.
created_atISO timestamp when the attempt record was created.
updated_atISO timestamp when the attempt record was last changed.
/v1/attemptsList attempts
Returns delivery attempts for the active team. Filter by one or more event IDs to inspect delivery history for specific events.
Input parameters
Route, header, query, and body inputs accepted by this endpoint.
Headers
Bearer API key or session token.
Team to execute the request against. If omitted, FastHook falls back to team_id query and then the demo team.
Query parameters
Event ID filter. Repeat the parameter to filter by multiple events.
Destination ID filter. Repeat the parameter to filter by multiple destinations.
FAILED | SUCCESSFUL
ISO timestamp or relative time expression such as now-1h.
ISO timestamp or relative time expression such as now.
search attempt, event, destination, error code, requested URL, or request ID.
Sort field. Currently created_at.
asc | desc, default desc
default 100, max 255
Opaque cursor from pagination.next.
Opaque cursor from pagination.prev.
Notes
- Use either next or prev from pagination for cursor pagination.
- Attempts preserve per-delivery response details while events keep aggregate delivery status.
/v1/attempts/:idRetrieve an attempt
Returns one delivery attempt for the active team.
Input parameters
Route, header, query, and body inputs accepted by this endpoint.
Path parameters
Attempt ID.
Headers
Bearer API key or session token.
Team to execute the request against. If omitted, FastHook falls back to team_id query and then the demo team.
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.
Response fields
31 fieldsdate_range.startStart of the returned metrics range.
date_range.endEnd of the returned metrics range.
granularity1s | 5s | 10s | 30s | 1m | 5m | 15m | 1hTime bucket size used for the returned series.
series[].timestampStart timestamp for a metrics bucket.
series[].countTotal records counted in the bucket.
series[].accepted_countInbound requests accepted in the bucket.
series[].rejected_countInbound requests rejected in the bucket.
series[].delivered_countOutbound events delivered successfully in the bucket.
series[].failed_countOutbound events failed in the bucket.
series[].queued_countOutbound events queued in the bucket.
series[].processing_countOutbound events processing in the bucket.
series[].hold_countOutbound events held for retry or scheduling in the bucket.
series[].ignored_countOutbound events ignored in the bucket.
models[].idmodels[].id field returned by the Metrics API.
models[].source_idmodels[].source_id field returned by the Metrics API.
models[].destination_idmodels[].destination_id field returned by the Metrics API.
models[].transformation_idTransformation ID for a compact metrics row.
models[].requests_24h_countmodels[].requests_24h_count field returned by the Metrics API.
models[].requests_24h_total_countmodels[].requests_24h_total_count field returned by the Metrics API.
models[].requests_24h_accepted_countmodels[].requests_24h_accepted_count field returned by the Metrics API.
models[].requests_24h_rejected_countmodels[].requests_24h_rejected_count field returned by the Metrics API.
models[].requests_24h_accepted_binsmodels[].requests_24h_accepted_bins field returned by the Metrics API.
models[].requests_24h_rejected_binsmodels[].requests_24h_rejected_bins field returned by the Metrics API.
models[].connections_countConnections that reference the source or transformation in this metrics row.
models[].attempts_24h_countmodels[].attempts_24h_count field returned by the Metrics API.
models[].attempts_24h_binsmodels[].attempts_24h_bins field returned by the Metrics API.
models[].executions_24h_countTransformation executions recorded in the last 24 hours.
models[].executions_24h_successful_countTransformation executions without error-level logs in the last 24 hours.
models[].executions_24h_failed_countTransformation executions with error-level logs in the last 24 hours.
models[].executions_24h_successful_binsSix buckets, oldest to newest, of successful transformation executions over the last 24 hours.
models[].executions_24h_failed_binsSix buckets, oldest to newest, of failed transformation executions over the last 24 hours.
/v1/metrics/requestsRequest metrics
Returns request histogram metrics with request-specific measures.
Input parameters
Route, header, query, and body inputs accepted by this endpoint.
Headers
Bearer API key or session token.
Team to execute the request against. If omitted, FastHook falls back to team_id query and then the demo team.
Query parameters
ISO datetime, required
ISO datetime, required
1s | 5s | 10s | 30s | 1m | 5m | 15m | 1h
count | accepted_count | rejected_count
Source ID used to filter inbound requests or routed events.
Bulk operation ID used to filter matching requests or events.
accepted | rejected
Text search query.
/v1/metrics/eventsEvent metrics
Returns event histogram metrics with event-specific measures.
Input parameters
Route, header, query, and body inputs accepted by this endpoint.
Headers
Bearer API key or session token.
Team to execute the request against. If omitted, FastHook falls back to team_id query and then the demo team.
Query parameters
ISO datetime, required
ISO datetime, required
1s | 5s | 10s | 30s | 1m | 5m | 15m | 1h
count | delivered_count | failed_count | queued_count | processing_count | hold_count | ignored_count
Source ID used to filter inbound requests or routed events.
Connection ID used to filter routed requests or events.
Destination ID used to filter outbound events.
Bulk operation ID used to filter matching requests or events.
SCHEDULED | QUEUED | HOLD | SUCCESSFUL | FAILED | CANCELLED
Text search query.
/v1/metrics/sourcesSource summary metrics
Returns compact 24 hour request and connection metrics for one or more sources.
Input parameters
Route, header, query, and body inputs accepted by this endpoint.
Headers
Bearer API key or session token.
Team to execute the request against. If omitted, FastHook falls back to team_id query and then the demo team.
Query parameters
Source ID. Repeat the parameter or pass comma-separated IDs.
Alias for id.
Alias for id.
Alias for id.
Notes
- Use this after GET /v1/sources so the source list response stays lightweight.
- Bins are ordered oldest to newest across the last 24 hours.
/v1/metrics/destinationsDestination summary metrics
Returns compact 24 hour delivery attempt metrics for one or more destinations.
Input parameters
Route, header, query, and body inputs accepted by this endpoint.
Headers
Bearer API key or session token.
Team to execute the request against. If omitted, FastHook falls back to team_id query and then the demo team.
Query parameters
Destination ID. Repeat the parameter or pass comma-separated IDs.
Alias for id.
Alias for id.
Alias for id.
Notes
- Use this after GET /v1/destinations so the destination list response stays lightweight.
- Bins are ordered oldest to newest across the last 24 hours.
/v1/metrics/transformationsTransformation summary metrics
Returns compact 24 hour execution and connection metrics for one or more transformations.
Input parameters
Route, header, query, and body inputs accepted by this endpoint.
Headers
Bearer API key or session token.
Team to execute the request against. If omitted, FastHook falls back to team_id query and then the demo team.
Query parameters
Transformation ID. Repeat the parameter or pass comma-separated IDs.
Alias for id.
Alias for id.
Alias for id.
Notes
- Use this after GET /v1/transformations so the transformation list response stays lightweight.
- 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.
Response fields
4 fieldserrorShort error label returned by the API.
codeMachine-readable error code for programmatic handling.
messageHuman-readable explanation of the error.
dataOptional structured details for conflict or validation errors.
/v1/sources/:idError format
Most errors include error/message fields, and some conflict responses include code and data.
Input parameters
Route, header, query, and body inputs accepted by this endpoint.
Path parameters
Source ID.
Headers
Bearer API key or session token.
Team to execute the request against. If omitted, FastHook falls back to team_id query and then the demo team.
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.