Skip to content

Schemas

The objects the API takes and returns. Fields that may be left out or be null are not marked required.

AccountExport

FieldTypeDescription
exported_at requiredstring (date-time)
feedback requiredExportedFeedback[]
organizations requiredExportedOrganization[]
sessions requiredExportedSession[]
user requiredExportedUser

Actor

FieldTypeDescription
id requiredstringusr_ or key_ ID.
name requiredstringThe person's email, or the key's name.
type requiredstringuser or api_key.

AddSourceSecret

FieldTypeDescription
overlap_secondsinteger (int32) | nullHow long the previous secret keeps working, 0 to 2592000 seconds; a day when left out.
value requiredstringThe secret as the provider shows it, such as Stripe's whsec_....

Alert

FieldTypeDescription
id requiredstring
kind requiredAlertKind
opened_at requiredstring (date-time)
resolved_atstring (date-time) | nullNone while it is open.
rule_id requiredstring
subject_idstring | nullThe src_ or dst_ ID it is about; none for quota.
subject_namestring | nullIts name now; none once it is deleted.
summary requiredstring
value requiredinteger (int64)What the rule measured when it opened: minutes, events, deliveries or a percentage.

AlertChannel

FieldTypeDescription
created_at requiredstring (date-time)
id requiredstring
target requiredstringThe address, or the URL's scheme, host and first path segment: the rest of a webhook URL, often its secret, is never shown again.
type requiredChannelType

AlertKind

What a rule watches.

"destination_failing" | "verification_failures" | "dead_letters" | "quota" | "source_silent"

AlertRule

FieldTypeDescription
created_at requiredstring (date-time)
destination_idstring | nullThe one destination watched (destination_failing, dead_letters); none watches every destination of the environment.
enabled requiredbooleanA disabled rule is not evaluated, and its open alerts resolve.
id requiredstring
kind requiredAlertKind
minutes requiredinteger (int32)The window, 1 to 1440; for destination_failing and source_silent, how long the condition must have held.
open_alerts requiredinteger (int64)Its alerts open now.
source_idstring | nullThe one source watched (verification_failures, source_silent); none watches every source of the environment.
threshold requiredinteger (int32)Events or deliveries in the window (verification_failures, dead_letters), or a percentage of the month's events (quota).
updated_at requiredstring (date-time)

ApiKey

FieldTypeDescription
created_at requiredstring (date-time)
hint requiredstringThe secret's first characters, to tell keys apart.
id requiredstring
kind requiredstringpersonal, service, or a revoked, unclassified legacy credential.
last_used_atstring (date-time) | null
name requiredstring
owner_user_idstring | nullHuman subject for personal keys; absent for service and legacy keys.
revoked_atstring (date-time) | null
role requiredstringOriginal permission ceiling, not the personal owner's effective role.

Attempt

FieldTypeDescription
duration_ms requiredinteger (int32)
errorAttemptError | nullWhy it failed, explained; none when it was answered with a 2xx (P3-61).
number requiredinteger (int32)
remote_ipstring | nullThe address it connected to, once TCP connected (P3-56).
started_at requiredstring (date-time)
status_codeinteger (int32) | nullThe destination's response status, or none if the request failed.

AttemptError

A failed attempt, explained. The fault and outcome are a best guess from how the attempt failed, never certain.

FieldTypeDescription
fault requiredstringWho is probably at fault: destination, network, ricochet or configuration.
hint requiredstringWhat to do about it.
kind requiredstringHow it failed: dns, refused, connect_timeout, tls, send, response_timeout, closed_by_peer, blocked_target or other (which includes a response that was not a 2xx).
message requiredstringWhat happened.
outcome requiredstringWhether the destination got the request: not_received, unknown (it may have, so a retry can repeat it) or received.
phasestring | nullWhere it failed: connect, tls, send, wait_first_byte, read_headers or read_body; none when no connection phase applies.

AttemptErrorGroup

FieldTypeDescription
count requiredinteger (int64)Failed attempts in the group.
key requiredstringThe failure kind, the dst_ ID, or the minute (2026-10-14T18:17:00Z).
namestring | nullThe destination's name, when grouped by destination and it still exists.
slowest requiredSlowestAttemptThe one that took longest.

AttemptErrors

FieldTypeDescription
after requiredstring (date-time)
before requiredstring (date-time)
group_by requiredstring
groups requiredAttemptErrorGroup[]By count, largest first; by minute, oldest first. At most 500.
total requiredinteger (int64)Failed attempts in the range, in every group.

AuditEntry

One line of the log.

FieldTypeDescription
action requiredstring<subject>.<verb>: source, destination or connection .created, .updated or .deleted; environment.created, .updated or .deleted; project.created, .renamed or .deleted; organization.renamed; member.joined, .role_changed, .removed or .left; invite.created, .revoked or .declined; api_key.created or .revoked; alert_rule.created, .updated or .deleted; alert_channel.created or .deleted; replay.created; replay_job.created, .started, .paused or .cancelled; event.resent or .released.
actorActor | nullWho did it; absent when it was not done through the API, or the person or key is gone.
actor_namestring | nullThe person's email or the key's name when it was done, kept after they are gone.
at requiredstring (date-time)
details requiredobjectWhat changed, by action: fields for an update, from and to for a role, role for an invite or key; never secret values.
environment_idstring | null
id requiredinteger (int64)Increases with each line; pass as before for older ones.
project_idstring | null
subject_idstring | nullWhat it was done to; it may no longer exist.
subject_namestring | nullIts name or address at the time.

AuditPage

One page of the log.

FieldTypeDescription
data requiredAuditEntry[]Newest first.
next_beforeinteger (int64) | nullPass as before for the next, older page; absent on the last page.

Body

FieldTypeDescription
base64 requiredstringThe body's exact bytes.
textstring | nullThe body as text, when it is valid UTF-8.

BuildUpdate

FieldTypeDescription
subject requiredstringThe email's subject.
testbooleanSend it only to OWNER_EMAIL, to read it first. Not recorded.
text requiredstringThe email's plain text; the unsubscribe link is added after it.

BuildUpdateSent

FieldTypeDescription
recipients requiredinteger (int64)The emails queued.
test requiredboolean

Candidate

A waitlist signup that can be invited, with its survey answers.

FieldTypeDescription
current_toolstring | null
email requiredstring
eventsstring | null
fit requiredinteger (int32)Survey fit, 0 to 7; the order invites go out in.
providersstring[] | null
signed_up_at requiredstring (date-time)
teamstring | null

Certificate

FieldTypeDescription
expires_at requiredstring (date-time)
issuer requiredstring
subject requiredstring

ChallengeAnswer

FieldTypeDescription
challenge requiredstring
code requiredstringA code from the authenticator app, or a recovery code.

Change

One change.

FieldTypeDescription
action requiredstringcreated, updated or deleted.
actorActor | nullWho made it; absent when it was not made through the API, or the person or key is gone.
changed_at requiredstring (date-time)
fields requiredstring[]For updated, what changed: column names such as url or paused, and secrets or credential. Never the values.
id requiredinteger (int64)Increases with each change; pass as before for older ones.
namestring | nullIts name at the time; a connection's is its source's and destination's.
subject requiredstringsource, destination or connection.
subject_id requiredstringIts src_, dst_ or con_ ID; it may no longer exist.

ChangePage

One page of changes.

FieldTypeDescription
data requiredChange[]Newest first.
next_beforeinteger (int64) | nullPass as before for the next, older page; absent on the last page.

ChannelType

"email" | "webhook"

CheckDestination

FieldTypeDescription
methodCheckRequest

CheckRequest

What to send.

"head" | "options" | "event"

CheckSignature

FieldTypeDescription
secretstring | nullA secret to check with, as the provider shows it; omitted, the source's current secrets.

CheckStep

One step of the request.

FieldTypeDescription
detailstring | nullWhat it found: the address, the certificate, the status.
duration_msinteger (int64) | null
name requiredstringdns (the name lookup and the address rules), connect, tls, send, first_byte or status.
state requiredstringok, failed, skipped (TLS for an http URL) or not_run (after the step that failed).

CheckedWith

Which secret was checked.

"candidate" | "current"

Circuit

A destination's circuit breaker, as the gateway sees it now.

FieldTypeDescription
consecutive_failures requiredinteger (int64)Failed deliveries in a row.
in_flight requiredinteger (int64)Requests to it in progress now.
opened_atstring (date-time) | nullWhen the circuit opened; null while closed.
retry_atstring (date-time) | nullWhen an open circuit lets a probe through.
state requiredCircuitState

CircuitState

A circuit's state (P2-22).

"closed" | "open" | "half_open"

ClaimedInstant

Where a claimed URL now lives (P3-22).

FieldTypeDescription
environment_id requiredstringenv_ ID.
project_id requiredstringprj_ ID.
source_id requiredstringsrc_ ID.

Code

A code from the authenticator app, or a recovery code.

FieldTypeDescription
code requiredstring

Connection

FieldTypeDescription
created_at requiredstring (date-time)
destination_id requiredstring
filterobject | nullWhich events it takes; none takes them all. {"and": [...]}, {"or": [...]}, {"not": filter} or a condition {"path": path, <operator>: operand}, where a path is headers.<name>, body, body.<key>... or event_type (the provider's name for the event) and the operator is equals, one_of, exists, gt, gte, lt, lte or matches (a PCRE pattern). At most 8 levels and 100 nodes.
id requiredstring
paused requiredbooleanA paused connection holds its deliveries until it is resumed.
source_id requiredstring
transformationobject[] | nullHow the JSON body is reshaped for the destination; none sends it as stored. Up to 50 steps, in order: {"rename": path, "to": path}, {"drop": path}, {"add": path, "value": json}, {"add": path, "from": path} or {"map": path, "values": {...}, "default": json}, with paths into the body such as data.object.id.
updated_at requiredstring (date-time)

Count

FieldTypeDescription
confirmed requiredinteger (int64)
keystring | nullThe source or campaign; null when the signup had none.
submitted requiredinteger (int64)

CreateAlertChannel

FieldTypeDescription
targetstringA member's email address, or the webhook's URL.
typeChannelTypeRead after the caller's access is checked.

CreateAlertRule

FieldTypeDescription
destination_idstring | nulldst_ ID, for a destination rule; every destination when left out.
enabledboolean | null
kindAlertKindRead after the caller's access is checked, so an unknown kind is a 422 only for someone who may make rules.
minutesinteger (int32) | nullDefault 10 for destination_failing, 5 for verification_failures, 60 otherwise.
source_idstring | nullsrc_ ID, for a source rule; every source when left out.
thresholdinteger (int32) | nullDefault 10 for verification_failures, 1 for dead_letters, 80 for quota.

CreateApiKey

FieldTypeDescription
kindKeyKindDefaults to personal. Service credentials require a human admin.
name requiredstring
rolestring | nullPersonal: optional ceiling, at most the caller's role (never owner). Service: required independent viewer or developer grant.

CreateConnection

FieldTypeDescription
destination_id requiredstring
filterobject | nullAs in Connection; every event when left out.
source_id requiredstring
transformationobject[] | nullAs in Connection; the body as stored when left out.

CreateDestination

FieldTypeDescription
name requiredstring
settingsDestinationSettings | nullThe gateway's defaults when left out.
typeDestinationType | nullhttp when left out. A cli destination belongs to the caller (for an API key, the person who made it) and has no URL.
urlstring | nullFor an http destination: a public http or https URL.

CreateEnvironment

FieldTypeDescription
kind requiredstringstaging or production (or dev, if it was deleted).

CreateInstant

FieldTypeDescription
clibooleanFrom ricochet listen: the URL also gets a CLI destination to forward from.
turnstile_tokenstring | nullFrom the site's Turnstile widget: required unless cli, when the API checks Turnstile.

CreateReplayJob

FieldTypeDescription
destination_environment_idstring | nullenv_ ID of another of the project's environments the destination is in.
destination_idstring | nulldst_ ID to replay every event to; without one, each event goes to its original destinations.
rate_per_secondinteger (int64) | nullReplays started per second, 1 to 100; default 10. The destination's own limits still apply.
selection requiredSelection

CreateShare

FieldTypeDescription
expires_in_hoursinteger (int32) | nullHow long the link works: 1 to 720 hours; 168 (a week) when left out.

CreateSource

FieldTypeDescription
deduplicationDeduplication | null
handshakeHandshake | nullDefaults to none.
methodsMethod[] | nullDefaults to ["POST"].
name requiredstring
responseSourceResponse | nullDefaults to 200 with an empty body.
search_fieldsstring[] | nullUp to 5 fields its events can be searched by; none by default.
verificationVerification | nullDefaults to {"method": "none"}: every request is accepted.

CreatedDestination

A new destination, with its first signing secret.

Destination & object

CredentialType

"bearer" | "basic" | "header"

Deduplication

Provider identity policy, independent of signature verification.

object | object | object

Delivery

FieldTypeDescription
attempts requiredAttempt[]In order.
connection_idstring | nullThe connection that routed it (con_ ID), which may since be deleted.
created_at requiredstring (date-time)
destination_id requiredstring
destination_namestring | nullThe destination's name, unless it was deleted.
id requiredstring
status requiredstringpending, delivered or dead.
updated_at requiredstring (date-time)

DeliveryStatus

A delivery's status.

"pending" | "delivered" | "dead"

Destination

FieldTypeDescription
created_at requiredstring (date-time)
credentialDestinationCredential | nullThe credential sent with each delivery, without its secret.
id requiredstring
name requiredstring
owner_idstring | nullThe developer whose ricochet listen sessions a cli destination relays to.
owner_namestring | nullThe owner's name, or email when they have none.
paused requiredbooleanA paused destination holds its deliveries until it is resumed.
settings requiredDestinationSettingsRetry policy, limits and header rules.
type requiredDestinationType
updated_at requiredstring (date-time)
urlstring | nullWhere an http destination delivers.

DestinationCheck

FieldTypeDescription
certificateCertificate | nullThe destination's TLS certificate, for an https URL.
duration_ms requiredinteger (int64)The whole check.
errorAttemptError | nullHow it failed and what to do, as for an attempt (P3-61); none when it was answered with a 2xx.
method requiredstringHEAD, OPTIONS or POST.
remote_ipstring | nullThe checked address it connected to.
request requiredCheckRequest
started_at requiredstring (date-time)
status_codeinteger (int32) | nullThe response's status, if one came.
steps requiredCheckStep[]In order; each is ok until the one that failed.
urlstring | null

DestinationCredential

What is shown of a credential; its secret never is.

FieldTypeDescription
headerstring | nullThe header a header credential is sent in, lowercase.
type requiredCredentialType
updated_at requiredstring (date-time)
usernamestring | nullA basic credential's username.

DestinationHealth

FieldTypeDescription
after requiredstring (date-time)
before requiredstring (date-time)
errors requiredErrorGroup[]The most frequent first; at most 10.
failed_attempts requiredinteger (int64)The range's failed attempts, in every group.
last_failure_atstring (date-time) | nullThe latest failed attempt, in any range.
last_success_atstring (date-time) | nullThe latest attempt answered with a 2xx, in any range; none if no stored attempt was.

DestinationSettings

Unset fields use the gateway's defaults.

FieldTypeDescription
headersHeaderRule[] | nullApplied in order to each delivery's headers; at most 50.
hold_max_age_secondsinteger (int32) | nullHow long a held delivery waits before it fails, 60 seconds to 7 days; 1 day when left out.
hold_max_eventsinteger (int32) | nullHow many deliveries it holds at most, 1 to 1000; 100 when left out.
hold_offlineboolean | nullCLI destinations only (P3-26): hold deliveries while no ricochet listen session is connected and send them when one joins. Off when left out: such a delivery fails, and the event stays replayable.
max_age_secondsinteger (int32) | nullHow long after the event arrived retries stop, 60 seconds to 30 days; 3 days when left out.
max_attemptsinteger (int32) | nullAttempts before a delivery is dead, 1 to 50; 10 when left out.
max_in_flightinteger (int32) | nullRequests in flight at once, 1 to 100; 10 when left out.
max_per_secondinteger (int32) | nullRequests per second, 1 to 1000; no limit when left out.
retry_statusesinteger (int32)[] | null3xx and 4xx statuses to retry as well as 5xx, 408 and 429.
timeout_msinteger (int32) | nullHow long one attempt waits for an answer, 1000 to 60000 ms; 30 s when left out.

DestinationType

"http" | "cli"

DeviceLogin

A login waiting for the person to confirm it.

FieldTypeDescription
device_code requiredstringWhat the CLI polls with; secret.
expires_in requiredinteger (int64)Seconds until the codes stop working.
interval requiredinteger (int64)Seconds to wait between polls.
user_code requiredstringWhat the person checks in the dashboard.
verification_uri requiredstringWhere the person confirms it.
verification_uri_complete requiredstringThe same, with the code filled in.

DeviceToken

The poll's answer while the login is open, and once it is confirmed.

FieldTypeDescription
expires_atstring (date-time) | nullWith approved: when the token stops working.
status requiredDeviceTokenStatuspending until the person confirms, then approved.
tokenstring | nullWith approved, once: sent as Authorization: Bearer rd_….
userUser | nullWith approved: who signed in.

DeviceTokenRequest

FieldTypeDescription
device_code requiredstring

DeviceTokenStatus

"pending" | "approved"

Done

The JSON answer to a request that worked.

FieldTypeDescription
ok requiredboolean

Environment

FieldTypeDescription
id requiredstring
kind requiredstringdev, staging or production.
retention_daysinteger (int64) | nullHow many days its events are kept: its own limit or its plan's. None keeps them for the operational ceiling, 30 days by default (P2-29).

EnvironmentDetail

An environment with its limits.

FieldTypeDescription
created_at requiredstring (date-time)
effective requiredLimitsIn force: the plan's, lowered by the overrides.
id requiredstring
kind requiredstringdev, staging or production.
limits requiredLimitsIts own overrides.
plan requiredLimitsThe organization's plan; null is unlimited.

ErrorExample

FieldTypeDescription
attempt requiredinteger (int32)The attempt's number in its delivery.
delivery_id requiredstring
event_id requiredstring

ErrorGroup

Failed attempts that failed the same way: the same kind, phase and status.

FieldTypeDescription
count requiredinteger (int64)Failed attempts in the range.
example requiredErrorExampleThe latest of them.
fault requiredstring
hint requiredstring
kind requiredstringAs in AttemptError.
last_seen_at requiredstring (date-time)
message requiredstringWhat happened, as in AttemptError.
outcome requiredstring
phasestring | null
status_codeinteger (int32) | nullThe response's status, for a response that was not a 2xx.

Event

EventSummary & object

EventPage

FieldTypeDescription
data requiredEventSummary[]Newest first.
next_cursorstring | nullPass as cursor for the next, older page; absent on the last page.

EventStatus

Where an event stands, from its deliveries (replays not counted).

"received" | "pending" | "delivered" | "failed"

EventSummary

FieldTypeDescription
content_typestring | nullThe first Content-Type header, if any.
delivered_count requiredinteger (int64)Of those, how many succeeded.
delivery_count requiredinteger (int64)Original deliveries, one per destination.
event_typestring | nullAs its provider names it: the X-GitHub-Event, X-Gitlab-Event or X-Shopify-Topic header, else the JSON body's type, event_type or event.
failed_attempt_count requiredinteger (int64)Attempts on those deliveries with no response or a response that was not a 2xx, including ones a retry later made good.
id requiredstring
last_error_kindstring | nullThe latest failed attempt's kind (P3-56; other for one recorded before kinds were), or none without a failed attempt.
last_error_statusinteger (int32) | nullThat attempt's response status, when it got a response.
method requiredstring
quarantined requiredbooleanFailed verification and held, not delivered, by the source's quarantine policy (P2-14).
received_at requiredstring (date-time)
size requiredinteger (int32)The body's size in bytes.
source_id requiredstring
status requiredEventStatus
target requiredstringThe request's path and query, as received.
verification requiredVerificationResult
verification_reasonstring | nullWhy verification failed, as a reason code.

ExportedFeedback

FieldTypeDescription
created_at requiredstring (date-time)
message requiredstring
pagestring | null

ExportedOrganization

FieldTypeDescription
id requiredstring
joined_at requiredstring (date-time)
name requiredstring
projects requiredExportedProject[]
role requiredstring

ExportedProject

FieldTypeDescription
created_at requiredstring (date-time)
id requiredstring
name requiredstring

ExportedSession

FieldTypeDescription
clientstring | null
created_at requiredstring (date-time)
expires_at requiredstring (date-time)
last_used_at requiredstring (date-time)
user_agentstring | null

ExportedUser

FieldTypeDescription
created_at requiredstring (date-time)
email requiredstring
github_linked requiredbooleanSigns in with GitHub too.
id requiredstring
namestring | null
onboardingobject | nullThe first-run setup's answers (P3-10), if given.
second_factor requiredboolean

Feedback

FieldTypeDescription
created_at requiredstring (date-time)
email requiredstring
message requiredstring
pagestring | nullThe dashboard path it was sent from.

FinishOnboarding

The first-run setup's end (P3-10).

FieldTypeDescription
needsstring | nullWhich other providers and destinations they will connect, in their words; at most 2,000 characters.
providerstring | nullThe provider picked to start with, e.g. stripe.
skippedbooleanSkipped rather than finished.

Fixture

FixtureSummary & object

FixtureSummary

A fixture without its request, as the list shows it.

FieldTypeDescription
description requiredstring
event_type requiredstringAs the events list shows it.
provider requiredstringThe preset it belongs to: stripe or github.

Handshake

A provider's URL check that a source answers without creating an event (P2-05): the challenge it sends is echoed back.

"none" | "slack" | "meta" | "microsoft_graph" | "dropbox"

FieldTypeDescription
name requiredstring
value requiredstring

HeaderRule

One of {"set": name, "value": value} (replaces the header or adds it), {"add": name, "value": value} (adds it, keeping others) or {"remove": name}. Credentials go in the destination's credential.

FieldTypeDescription
addstring | null
removestring | null
setstring | null
valuestring | nullFor set and add; at most 8 KiB, on one line.

HeldDeliveries

Deliveries held by a pause, for one destination and connection.

FieldTypeDescription
connection_idstring | nullcon_ ID; null for a replay's deliveries.
count requiredinteger (int64)
destination_id requiredstringdst_ ID.
oldest_held_at requiredstring (date-time)

HeldDeliveriesList

FieldTypeDescription
data requiredHeldDeliveries[]Oldest first.

HmacAlgorithm

"sha1" | "sha256" | "sha512"

InstantToken

FieldTypeDescription
token requiredstringThe ri_ token.

InstantView

A temporary URL and what it received.

FieldTypeDescription
destination_idstring | nullWith a CLI destination: its dst_ ID.
events requiredEvent[]The newest events first, at most 20.
events_left requiredinteger (int64)How many more events it takes; ingest may let a few more through while it catches up.
expires_at requiredstring (date-time)
url requiredstring
view_url requiredstringThe live page, with the token in its fragment.

Invite

An invite and whether it was used.

FieldTypeDescription
email requiredstring
from_waitlist requiredbooleanWhether it came from the waitlist.
invited_at requiredstring (date-time)
signed_up_atstring (date-time) | nullWhen its account was made; null until the first sign-in.

InviteRequest

A batch from the waitlist, or addresses by hand.

FieldTypeDescription
countinteger (int64) | nullInvites this many from the waitlist, best fit first (1 to 500).
emailsstring[]Invites these addresses, on the waitlist or not.

Invited

FieldTypeDescription
emails requiredstring[]Newly invited, each sent an invite email; addresses already invited or with an account are left out.

Issue

Deliveries to one destination that failed for good the same way.

FieldTypeDescription
cause requiredstringA status class (5xx) or an error kind (refused): select a bulk replay by it with causes.
deliveries requiredinteger (int64)Original deliveries, one per event and destination.
destination_id requiredstring
destination_namestring | nullIts name now; none once it is deleted.
example_event_id requiredstringThe latest of them.
fault requiredstring
first_failed_at requiredstring (date-time)When the first and the latest of them failed for good.
hint requiredstring
last_failed_at requiredstring (date-time)
message requiredstringWhat happened, how to fix it and whose fault it probably is, as for the latest attempt (P3-61).

IssueList

FieldTypeDescription
after requiredstring (date-time)
before requiredstring (date-time)
data requiredIssue[]The largest first; at most 100.

JoinRequest

The join form's fields. A JSON body has the same names, with string values; unknown fields are ignored. The attribution fields come from the page script; a plain form post gets them from its Referer instead.

FieldTypeDescription
cf-turnstile-responsestring | nullThe Cloudflare Turnstile token, checked when the API has TURNSTILE_SECRET.
email requiredstring
fbclidstring | null
gclidstring | null
landing_pagestring | nullThe landing page's path and query, e.g. /?utm_source=google.
li_fat_idstring | null
msclkidstring | null
refstring | nullA share link's referral code (10 hex characters).
referrerstring | nullThe page that linked to the landing page; only its origin and path are kept.
ttclidstring | null
utm_campaignstring | null
utm_contentstring | null
utm_mediumstring | null
utm_sourcestring | null
utm_termstring | null

KeyKind

"personal" | "service"

Limits

Limits by name; absent or null means none (unlimited, or the plan's).

FieldTypeDescription
ingest_max_body_bytesinteger (int64) | nullThe largest request body a source accepts.
ingest_max_header_bytesinteger (int64) | nullThe most header bytes (names and values) a request may carry.
ingest_requests_per_minuteinteger (int64) | nullRequests each source accepts a minute.
retention_daysinteger (int64) | nullDays its events are kept.

LinkRequest

FieldTypeDescription
email requiredstring
turnstile_tokenstring | nullThe Cloudflare Turnstile token, checked when the API has TURNSTILE_SECRET.

Listeners

A CLI destination's ricochet listen sessions, as the gateway sees them now (#415).

FieldTypeDescription
sessions requiredinteger (int64)Sessions connected now; none for an HTTP destination.

LogPage

FieldTypeDescription
lines requiredstring[]Matching lines, oldest first, each one JSON object as logged. API keys and bearer credentials are replaced with [redacted].
next_offsetinteger | nullPass as offset for the next, newer lines; absent at the end.
offset requiredintegerThe position of the first returned line among the matching ones.
service requiredstring
total requiredintegerMatching lines in all the service's files.

Member

FieldTypeDescription
email requiredstring
joined_at requiredstring (date-time)
namestring | null
role requiredstringowner, admin, developer or viewer.
user_id requiredstring

MemberInvite

FieldTypeDescription
created_at requiredstring (date-time)
email requiredstring
expires_at requiredstring (date-time)
id requiredstring
invited_bystring | nullWho sent it; absent once they are gone.
role requiredstringadmin, developer or viewer.

MemberInviteRequest

FieldTypeDescription
email requiredstring
role requiredstringadmin, developer or viewer.

MemberList

The members, oldest first, and the open invites, newest first.

FieldTypeDescription
invites requiredMemberInvite[]
members requiredMember[]

Method

An HTTP method a source accepts; others get 405.

"GET" | "POST" | "PUT" | "PATCH" | "DELETE"

MetricBucket

One bucket's counts. Latency percentiles are of the attempts' durations; when several destinations are combined, each is their mean weighted by attempts, an approximation.

FieldTypeDescription
attempts requiredinteger (int64)Delivery attempts that started in the bucket.
events requiredinteger (int64)Events stored.
failed requiredinteger (int64)
failed_by_kind requiredobjectThe failed attempts by kind (P3-63): a failure without a response by its kind (closed_by_peer, refused...; other when recorded before kinds were), a response that was not a 2xx by its status class (5xx). Empty for attempts rolled up before kinds were counted.
p50_msinteger (int32) | nullNone without attempts.
p95_msinteger (int32) | null
p99_msinteger (int32) | null
quarantined requiredinteger (int64)Of those, held after failed verification (P2-14).
start requiredstring (date-time)When the bucket starts; it lasts one resolution.
succeeded requiredinteger (int64)Of those, answered with a 2xx.

Metrics

FieldTypeDescription
after requiredstring (date-time)
before requiredstring (date-time)
buckets requiredMetricBucket[]Every bucket in the range, oldest first, empty ones included.
resolution requiredResolution
totals requiredMetricBucketThe whole range, its start being the first bucket's.

NameRequest

FieldTypeDescription
name requiredstring

NewApiKey

A new key, with the secret: the only time it is shown.

ApiKey & object

NewInstant

A new temporary URL; its token is shown only now.

FieldTypeDescription
destination_idstring | nullWith cli: the dst_ ID to listen on with the token.
expires_at requiredstring (date-time)
token requiredstringri_…: opens the live page and lets the CLI listen, until it expires or is claimed. Keep it private.
url requiredstringWhere to send webhooks.
view_url requiredstringThe live page, with the token in its fragment.

NewShare

A new link: its URL is shown only now.

Share & object

NewSigningSecret

A secret just made: the only time its value is shown.

SigningSecret & object

OnFailure

What happens to a request that fails verification.

"reject" | "quarantine"

OnboardingAnswer

What someone said in the first-run setup (P3-10).

FieldTypeDescription
email requiredstring
needsstring | nullWhat else they will connect, in their words.
onboarded_at requiredstring (date-time)
providerstring | nullThe provider they started with.
skipped requiredbooleanSkipped rather than finished.

Organization

FieldTypeDescription
id requiredstring
name requiredstring
projects requiredProject[]
role requiredstringThe signed-in user's role: owner, admin, developer or viewer.

PendingDeviceLogin

A login as the confirm page shows it.

FieldTypeDescription
client requiredstring
created_at requiredstring (date-time)
expires_at requiredstring (date-time)
user_code requiredstring

Problem

An error. type is omitted, which RFC 9457 reads as about:blank: the status says what kind of problem it is.

FieldTypeDescription
detail requiredstringWhat went wrong, written for the person using the client.
status requiredinteger (int32)
title requiredstringThe status's reason phrase.

Project

FieldTypeDescription
environments requiredEnvironment[]
id requiredstring
name requiredstring
organization_id requiredstring

ReadShare

FieldTypeDescription
token requiredstringThe token after # in the link.

ReceivedInvite

An invite to the signed-in person.

FieldTypeDescription
expires_at requiredstring (date-time)
id requiredstring
invited_bystring | nullThe inviter's name or email; absent once they are gone.
organization_id requiredstring
organization_name requiredstring
role requiredstring

RecoveryCodes

Recovery codes, shown once: each signs in once in place of a code.

FieldTypeDescription
codes requiredstring[]

Released

A released event.

FieldTypeDescription
event_id requiredstringevt_ ID.
released requiredboolean

Replay

FieldTypeDescription
delivery_id requiredstringThe replay's own delivery, with its own attempts.
destination_environment_id requiredstringThe event's own environment unless the replay was sent to another.
destination_id requiredstring
event_id requiredstring
id requiredstring
label requiredstring
number requiredinteger (int64)The event's first replay is 1.
requested_at requiredstring (date-time)
requested_by requiredstringWho asked: a usr_ or key_ ID.

ReplayEvent

FieldTypeDescription
destination_environment_idstring | nullenv_ ID of another of the project's environments the destination is in; the event's own by default.
destination_id requiredstringdst_ ID: the event's original destination or another one.

ReplayJob

FieldTypeDescription
created_at requiredstring (date-time)
destination_environment_id requiredstringWhere its replays go: the events' environment unless sent to another.
destination_idstring | null
events requiredinteger (int64)Events matched.
finished_atstring (date-time) | null
id requiredstring
processed requiredinteger (int64)Of total, replayed or skipped so far.
rate_per_second requiredinteger (int64)
requested_by requiredstring
selection requiredSelection
skipped requiredinteger (int64)Of processed, events retention removed before their turn.
started_atstring (date-time) | null
status requiredReplayJobStatus
summary requiredReplayJobSummary
total requiredinteger (int64)Replays it makes: one per event and destination.

ReplayJobStatus

"ready" | "running" | "paused" | "completed" | "cancelled"

ReplayJobSummary

How a job's replays went so far.

FieldTypeDescription
delivered requiredinteger (int64)
failed requiredinteger (int64)Dead, including those a cancellation stopped.
not_sent requiredinteger (int64)A cancelled job's replays it never reached.
pending requiredinteger (int64)Still being delivered.
skipped requiredinteger (int64)Events retention removed before their turn.

ReplayList

FieldTypeDescription
data requiredReplayWithStatus[]Oldest first.

ReplayWithStatus

Replay & object

Resolution

"minute" | "hour"

RoleRequest

FieldTypeDescription
role requiredstringowner, admin, developer or viewer.

RotateSigningSecret

FieldTypeDescription
overlap_secondsinteger (int32) | nullHow long the previous secret keeps signing, 0 to 2592000 seconds; a day when left out.

RuleTestResult

FieldTypeDescription
bodystring | nullThe body the transformation gives; null without one.
errorstring | nullWhy the transformation fails, as the delivery would.
event_id requiredstringevt_ ID.
found requiredbooleanFalse when the event is not stored in this environment.
passesboolean | nullWhether it passes the filter.

RuleTestResults

FieldTypeDescription
data requiredRuleTestResult[]One per event, in the order asked.

SearchField

A search field's value, as stored with the event.

FieldTypeDescription
name requiredstring
value requiredstring

SecondFactor

Whether the second factor is on.

FieldTypeDescription
enabled requiredboolean
recovery_codes_left requiredinteger (int64)Recovery codes not used yet.

SecondFactorRequired

The answer to a sign-in that needs the second factor.

FieldTypeDescription
challenge requiredstringSend it back with the code to POST /api/auth/second-factor.

SecondFactorSetup

A second factor being set up: the secret to put in an authenticator app.

FieldTypeDescription
qr_svg requiredstringThe URI as a QR code, an SVG image.
secret requiredstringBase32, to type in.
uri requiredstringThe otpauth:// URI the QR code holds.

Selection

Which events a bulk replay takes. Quarantined events and provider duplicates are never taken.

FieldTypeDescription
causesstring[] | nullWhy an original delivery's last attempt failed, as Issues groups them (P4-14): a status class (5xx) or, with no response, the error kind (refused). Events with such a delivery, in one of statuses and to one of destination_ids when those are given.
destination_idsstring[] | nulldst_ IDs: events with an original delivery to one of these, in one of statuses when both are given. Without a job destination, each event is replayed to those it matched.
event_typesstring[] | nullEvent types, as the events list shows them.
filterobject | nullA connection filter (P3-03) the event must pass.
from requiredstring (date-time)Received at or after.
source_idsstring[] | nullsrc_ IDs; any of them.
statusesDeliveryStatus[] | nullEvents with an original delivery in one of these.
to requiredstring (date-time)Received before.
unresolvedboolean | nulltrue leaves out an original delivery whose destination a replay of the event has delivered to, or is delivering to.

SendFeedback

FieldTypeDescription
message requiredstring1 to 5,000 characters.
pagestring | nullThe dashboard path it was sent from.

SendTestEvent

FieldTypeDescription
body requiredstringThe raw body, as the provider would send it; at most 60,000 bytes.
headersstring[][] | null[name, value] pairs, in order; at most 100. Ricochet adds the signature unless sign is false.
methodstring | nullOne the source accepts. Default POST.
signboolean | nullSign it with the source's newest secret, as its verification method expects. Default true; false sends it exactly as given.

Session

The signed-in user and everything they can open.

FieldTypeDescription
organizations requiredOrganization[]
user requiredUser

SessionInfo

A session the person is signed in with: a browser, or a CLI login.

FieldTypeDescription
clientstring | nullThe machine a CLI login was made for; none for a browser.
created_at requiredstring (date-time)
current requiredbooleanThe session this request came with.
expires_at requiredstring (date-time)
id requiredstring
last_used_at requiredstring (date-time)To the nearest five minutes.
user_agentstring | nullThe browser, as it named itself when it signed in.

SetCredential

The credential to send; it replaces any the destination had.

object | object | object

Share

FieldTypeDescription
created_at requiredstring (date-time)
created_by requiredstringWho made it: a usr_ or key_ ID.
event_id requiredstringevt_ ID.
expires_at requiredstring (date-time)
id requiredstring

ShareList

FieldTypeDescription
data requiredShare[]The links that still work, newest first.

SharedEvent

The event behind a link.

FieldTypeDescription
event requiredEventCredentials and signatures are masked.
expires_at requiredstring (date-time)When the link stops working.

SignatureCheck

FieldTypeDescription
method requiredstringThe source's verification method, as it is now.
reasonstring | nullWhy it failed, as stored on events.
result requiredstringverified, not_configured or failed.
secret requiredCheckedWith
steps requiredSignatureStep[]

SignatureEncoding

"hex" | "base64"

SignatureStep

One step of the check.

FieldTypeDescription
allowedstring[] | nullThe source's allowed address ranges.
body_bytesinteger (int64) | null
detail requiredstring
expectedstring | nullThe signature the secret computes; with the current secrets, its first 12 characters and an ellipsis.
headerstring | nullThe header it read.
name requiredstringmethod, allowed_ips, content_digest, settings, header, timestamp, signed_content, signature or credential.
okboolean | nullNull when the step was not checked.
receivedobject | nullWhat the request carried: a header value, a timestamp, or a list of signatures.
templatestring | nullWhat is signed, with {body} standing for the body as received.

SigningSecret

FieldTypeDescription
created_at requiredstring (date-time)
expires_atstring (date-time) | nullWhen it stops signing; none while it is the current secret.
id requiredstring

SimulateFailures

FieldTypeDescription
countinteger (int32) | nullHow many of the next deliveries: 1 to 100, default 1.
mode requiredSimulationMode | nullRequired; checked after access, so another tenant's ID is a 404.
status_codeinteger (int32) | nullWith status: 200 to 599.

Simulation

A destination's simulation in progress.

FieldTypeDescription
created_at requiredstring (date-time)
destination_id requiredstringdst_ ID.
mode requiredSimulationMode
remaining requiredinteger (int32)Deliveries left to fail.
requested_by requiredstringWho set it: a usr_ or key_ ID.
status_codeinteger (int32) | null

SimulationMode

How the simulated deliveries fail.

"timeout" | "status"

SimulationState

FieldTypeDescription
simulationSimulation | nullNull when none is left.

SlowestAttempt

FieldTypeDescription
delivery_id requiredstring
destination_id requiredstring
duration_ms requiredinteger (int32)
event_id requiredstring
message requiredstringHow it failed, explained as the Events API does (P3-61).
number requiredinteger (int32)
project_id requiredstring
started_at requiredstring (date-time)
status_codeinteger (int32) | null

Source

FieldTypeDescription
created_at requiredstring (date-time)
deduplication requiredDeduplication
handshake requiredHandshake
id requiredstring
methods requiredMethod[]
name requiredstring
response requiredSourceResponse
search_fieldsstring[]Fields its events can be searched by (P4-09), as filter paths: body.data.object.customer or headers.x-shop-id.
updated_at requiredstring (date-time)
url requiredstringWhere providers send webhooks.
verification requiredVerification

SourceResponse

What a source answers the sender once a request is stored. Unset fields mean 200 with an empty body.

FieldTypeDescription
bodystring | nullAt most 4 KiB; none for 204.
content_typestring | nullThe body's type; text/plain when a body has none.
statusinteger (int32) | null200 to 204.

SourceSecret

FieldTypeDescription
created_at requiredstring (date-time)
expires_atstring (date-time) | nullWhen it stops verifying; none while it is the current secret.
id requiredstring

StartDeviceLogin

FieldTypeDescription
clientstring | nullWhat the token will be called, e.g. the machine's name.

Stats

FieldTypeDescription
by_campaign requiredCount[]
by_source requiredCount[]
confirmed requiredinteger (int64)
referred requiredinteger (int64)Signups that came through someone's share link.
submitted requiredinteger (int64)
unsubscribed requiredinteger (int64)

SurveyRequest

Every answer is optional; unknown values are dropped. A form post repeats providers; JSON sends it as an array.

FieldTypeDescription
current_tool"none" | "tunnel" | "hookdeck" | "svix" | "in_house" | "other"What they use today
events"lt_10k" | "10k_100k" | "100k_1m" | "gt_1m" | "unsure"Webhook events a month
providers"stripe" | "github" | "shopify" | "twilio" | "slack" | "paypal" | "other"[]Providers whose webhooks they receive
team"solo" | "2_10" | "11_50" | "51_plus"Team size

TestEvent

FieldTypeDescription
event_id requiredstringThe stored event: open it in the events list.
quarantined requiredbooleanFailed verification and held by the source's policy, not delivered.
received_at requiredstring (date-time)
resent_fromstring | nullFor an edited copy (P3-17), the event it was resent from.
verification requiredTestVerification

TestRules

FieldTypeDescription
connection_idstring | nullcon_ ID: its current filter and transformation, instead of the two above.
event_idsstring[]1 to 50 evt_ IDs.
filterobject | nullA connection filter (P3-03); none passes every event.
transformationobject[] | nullA connection transformation's steps (P2-38); none keeps the body.

TestVerification

FieldTypeDescription
reasonstring | nullWhy it failed, as a reason code.
status requiredVerificationResult

UpdateAlertRule

What can change; to watch something else, make another rule.

FieldTypeDescription
enabledboolean | null
minutesinteger (int32) | null
thresholdinteger (int32) | null

UpdateConnection

The fields to change; the others stay. null clears a filter or a transformation.

FieldTypeDescription
filterobject | null
pausedboolean | null
transformationobject[] | null

UpdateDestination

The fields to change; the others stay. settings replaces the whole object.

FieldTypeDescription
namestring | null
pausedboolean | null
settingsDestinationSettings | null
urlstring | null

UpdateEnvironment

FieldTypeDescription
limitsLimitsReplaces every override: a limit left out or null is the plan's.

UpdateSource

The fields to change; the others stay. response and verification and deduplication replace the whole object.

FieldTypeDescription
deduplicationDeduplication | null
handshakeHandshake | nullDefaults to none.
methodsMethod[] | null
namestring | null
responseSourceResponse | null
search_fieldsstring[] | nullReplaces the list; events already stored keep what they had.
verificationVerification | null

User

FieldTypeDescription
email requiredstring
id requiredstring
namestring | null
onboardedbooleanFinished or skipped the first-run setup (P3-10).

UserCode

The code the person typed or followed a link with.

FieldTypeDescription
user_code requiredstring

Verification

How a source verifies requests. Which fields apply depends on method; the others must be left out.

FieldTypeDescription
algorithmHmacAlgorithm | nullhmac; sha256 when left out.
allowed_ipsstring[] | nullAny method: the only addresses requests are accepted from, as IPv4 or IPv6 CIDR ranges.
encodingSignatureEncoding | nullhmac; hex when left out.
fieldstring | nullshared_secret: the body field holding the token; a dotted path in JSON.
headerstring | nullhmac: the signature header. api_key: the key's header.
method requiredVerificationMethod
on_failureOnFailure | nullAny method; reject when left out.
prefixstring | nullhmac: text before the signature, such as sha256=.
querystring | nullapi_key: the key's query parameter, instead of header.
signed_contentstring | nullhmac: what is signed, {body} when left out; {timestamp} is the timestamp_header value.
timestamp_headerstring | nullhmac, when signed_content has {timestamp}.
tolerance_secondsinteger (int32) | nullhmac with a timestamp, and stripe: how far a signed timestamp may be from now, in seconds; 300 when left out.

VerificationMethod

"none" | "hmac" | "stripe" | "github" | "basic" | "api_key" | "shared_secret"

VerificationResult

How the source verified the event when it arrived (P2-08).

"verified" | "not_configured" | "failed"

VerifyRequest

FieldTypeDescription
token requiredstringThe token from the link.