{"openapi":"3.1.0","info":{"title":"Linje Product API","version":"1.0.0","description":"Transactional email, inbound email webhooks, programmable replies, inspection, and replay."},"servers":[{"url":"https://api.linje.systems"}],"tags":[{"name":"meta","description":"Machine-readable API metadata."},{"name":"messages","description":"Transactional outbound email."},{"name":"inboxes","description":"Inbound email addresses and webhook targets."},{"name":"reply-routes","description":"Opaque Reply-To addresses with immutable correlation metadata."},{"name":"inbound","description":"Stored inbound email artifacts, attempts, and replay."},{"name":"events","description":"Outbound message lifecycle webhooks, attempts, and replay."}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","description":"Project API token or inbox management token, depending on the resource."},"attachmentExpires":{"type":"apiKey","in":"query","name":"expires","description":"Expiry from a Linje-generated signed attachment URL."},"attachmentSignature":{"type":"apiKey","in":"query","name":"sig","description":"Signature from a Linje-generated signed attachment URL."}},"parameters":{"limit":{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":500,"default":100}},"inboundId":{"name":"inboundId","in":"path","required":true,"schema":{"type":"string"},"example":"inbound_123"},"status":{"name":"status","in":"query","required":false,"schema":{"type":"string"}},"cursor":{"name":"cursor","in":"query","required":false,"schema":{"type":"string"},"description":"Opaque cursor from the previous response."},"expires":{"name":"expires","in":"query","required":false,"schema":{"type":"integer","format":"int64"}},"routeId":{"name":"routeId","in":"path","required":true,"schema":{"type":"string","pattern":"^route_"},"example":"route_123"},"signature":{"name":"sig","in":"query","required":false,"schema":{"type":"string"}},"inboxId":{"name":"inboxId","in":"path","required":true,"schema":{"type":"string"},"example":"orders"},"messageId":{"name":"messageId","in":"path","required":true,"schema":{"type":"string"},"example":"msg_123"},"attachmentId":{"name":"attachmentId","in":"path","required":true,"schema":{"type":"string","pattern":"^[0-9a-f]{64}$"}},"inboxIdQuery":{"name":"inbox-id","in":"query","required":false,"schema":{"type":"string"},"example":"orders"},"eventId":{"name":"eventId","in":"path","required":true,"schema":{"type":"string"},"example":"event_123"},"idempotencyKey":{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string","description":"A fresh UUIDv4 or 32 cryptographically random hexadecimal characters."},"example":"018f47d2-89ab-4cde-8123-456789abcdef"}},"responses":{"BadRequest":{"description":"Invalid request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"Unauthorized":{"description":"Missing or invalid bearer credentials.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"Forbidden":{"description":"The credential cannot access this resource.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"NotFound":{"description":"The resource does not exist or is not visible to this credential.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"Conflict":{"description":"The request conflicts with current state or prior idempotent input.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"Gone":{"description":"The idempotent reply route was previously purged and cannot be recreated.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"TooLarge":{"description":"The request or reply-route metadata is too large.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"RateLimited":{"description":"The project is temporarily throttled.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"schemas":{"InboxProvisionRequest":{"type":"object","required":["webhook-url"],"properties":{"id":{"type":"string","description":"Optional stable inbox id. Linje generates one when omitted."},"webhook-url":{"type":"string","format":"uri"},"secret":{"type":"string"},"active":{"type":"boolean"},"sender-allowlist":{"type":"array","items":{"type":"string"}},"sender-blocklist":{"type":"array","items":{"type":"string"}}},"additionalProperties":false,"example":{"webhook-url":"https://app.example.com/linje/inbound"}},"ResourceListResponse":{"type":"object","required":["ok"],"properties":{"ok":{"type":"boolean"}},"additionalProperties":true},"InboxWriteRequest":{"type":"object","required":["webhook-url"],"properties":{"id":{"type":"string"},"address":{"type":"string","format":"email"},"webhook-url":{"type":"string","format":"uri"},"secret":{"type":"string"},"active":{"type":"boolean"},"sender-allowlist":{"type":"array","items":{"type":"string"}},"sender-blocklist":{"type":"array","items":{"type":"string"}}},"additionalProperties":false,"example":{"id":"orders","webhook-url":"https://app.example.com/linje/inbound"}},"InboundEmailPayload":{"type":"object","required":["schema","event-id","inbound-id","inbox-id","email","content","attachments"],"properties":{"route":{"type":"object","additionalProperties":true},"schema":{"type":"string","const":"linje.inbound-email.v1"},"email":{"type":"object","additionalProperties":true},"inbox-id":{"type":"string"},"event-id":{"type":"string"},"content":{"type":"object","additionalProperties":true},"inbound-id":{"type":"string"},"correlation":{"type":"object","additionalProperties":true},"attachments":{"type":"array","items":{"type":"object","additionalProperties":true}}},"additionalProperties":true},"ReplyRouteListResponse":{"type":"object","required":["ok","reply-routes","next-cursor"],"properties":{"ok":{"type":"boolean"},"reply-routes":{"type":"array","items":{"$ref":"#/components/schemas/ReplyRoute"}},"next-cursor":{"type":["string","null"]}}},"ReplyRoute":{"type":"object","required":["id","project_id","inbox_id","metadata","active"],"properties":{"id":{"type":"string"},"project_id":{"type":"string"},"inbox_id":{"type":"string"},"metadata":{"type":"object","additionalProperties":true},"expires_at":{"type":["integer","null"],"format":"int64"},"active":{"type":"boolean"},"token_last4":{"type":"string","minLength":4,"maxLength":4},"address":{"type":"string","format":"email","description":"Returned only on creation and exact idempotent retries while the route exists."}},"additionalProperties":true,"example":{"id":"route_123","project_id":"orders-api","inbox_id":"orders","metadata":{"order-id":"order_82921"},"active":true,"address":"r+0123456789abcdef0123456789abcdef@in.linje.systems"}},"ReplyRouteResponse":{"type":"object","required":["ok","reply-route"],"properties":{"ok":{"type":"boolean"},"reply-route":{"$ref":"#/components/schemas/ReplyRoute"}}},"ReplyRouteCreateRequest":{"type":"object","required":["inbox-id"],"properties":{"inbox-id":{"type":"string"},"metadata":{"type":"object","additionalProperties":true,"description":"Immutable correlation metadata, limited to 16 KiB when serialized."},"expires-at-ms":{"type":["integer","null"],"format":"int64","description":"Future epoch-millisecond expiry."}},"additionalProperties":false,"example":{"inbox-id":"orders","metadata":{"order-id":"order_82921"},"expires-at-ms":1893456000000}},"InboxPatchRequest":{"type":"object","minProperties":1,"properties":{"webhook-url":{"type":"string","format":"uri"},"secret":{"type":"string"},"active":{"type":"boolean"},"sender-allowlist":{"type":"array","items":{"type":"string"}},"sender-blocklist":{"type":"array","items":{"type":"string"}},"rotate-secret?":{"type":"boolean"},"rotate-manage-token?":{"type":"boolean"}},"additionalProperties":false},"InboxWebhookTestRequest":{"type":"object","properties":{"inbound-id":{"type":"string","description":"Optional stored message whose payload should be used for the test."}},"additionalProperties":false},"ReplyRoutePatchRequest":{"type":"object","minProperties":1,"properties":{"active":{"type":"boolean"},"expires-at-ms":{"type":["integer","null"],"format":"int64"}},"additionalProperties":false,"example":{"active":false}},"MessageCreateRequest":{"type":"object","required":["from","to","subject"],"properties":{"reply-to":{"type":"array","items":{"type":"string","format":"email"}},"bcc":{"type":"array","items":{"type":"string","format":"email"}},"text":{"type":"string"},"idempotency-key":{"type":"string"},"subject":{"type":"string"},"from":{"type":"string","format":"email"},"html":{"type":"string"},"to":{"type":"array","minItems":1,"items":{"type":"string","format":"email"}},"cc":{"type":"array","items":{"type":"string","format":"email"}}},"additionalProperties":true,"example":{"idempotency-key":"order-82921-shipped","from":"orders@tx.example.com","to":["customer@example.net"],"reply-to":["r+0123456789abcdef0123456789abcdef@in.linje.systems"],"subject":"Your order has shipped","text":"Your order has shipped."}},"ErrorResponse":{"type":"object","required":["ok","error"],"properties":{"ok":{"type":"boolean","const":false},"error":{"type":"string"}},"additionalProperties":true,"example":{"ok":false,"error":"reply route not found"}},"ResourceResponse":{"type":"object","required":["ok"],"properties":{"ok":{"type":"boolean"}},"additionalProperties":true},"MessageAcceptedResponse":{"type":"object","required":["ok","message-id"],"properties":{"ok":{"type":"boolean"},"message-id":{"type":"string"}},"example":{"ok":true,"message-id":"msg_123"}}}},"paths":{"/v1/messages/{messageId}":{"get":{"tags":["messages"],"summary":"Inspect one message","operationId":"getMessage","responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResourceResponse"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"}},"parameters":[{"$ref":"#/components/parameters/messageId"}]}},"/v1/inboxes/provision":{"post":{"tags":["inboxes"],"summary":"Provision an inbox with an optional generated id","operationId":"provisionInbox","responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResourceResponse"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InboxProvisionRequest"}}}}}},"/v1/inbound/messages/{inboundId}":{"get":{"tags":["inbound"],"summary":"Inspect one inbound message","operationId":"getInboundMessage","responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResourceResponse"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"}},"parameters":[{"$ref":"#/components/parameters/inboundId"}]}},"/v1/messages/{messageId}/retry-now":{"post":{"tags":["messages"],"summary":"Retry an eligible message now","operationId":"retryMessageNow","responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResourceResponse"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"409":{"$ref":"#/components/responses/Conflict"}},"parameters":[{"$ref":"#/components/parameters/messageId"}]}},"/v1/events/{eventId}":{"get":{"tags":["events"],"summary":"Inspect one outbound lifecycle event","operationId":"getEvent","responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResourceResponse"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"}},"parameters":[{"$ref":"#/components/parameters/eventId"}]}},"/v1/events":{"get":{"tags":["events"],"summary":"List outbound lifecycle events for the authenticated project","operationId":"listEvents","responses":{"200":{"description":"Successful list response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResourceListResponse"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"}},"parameters":[{"$ref":"#/components/parameters/status"},{"$ref":"#/components/parameters/limit"}]}},"/v1/messages":{"post":{"tags":["messages"],"summary":"Queue a transactional email","operationId":"sendMessage","responses":{"202":{"description":"Message accepted for delivery.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MessageAcceptedResponse"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"429":{"$ref":"#/components/responses/RateLimited"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MessageCreateRequest"}}}}},"get":{"tags":["messages"],"summary":"List messages for the authenticated project","operationId":"listMessages","responses":{"200":{"description":"Successful list response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResourceListResponse"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"}},"parameters":[{"$ref":"#/components/parameters/status"},{"$ref":"#/components/parameters/limit"}]}},"/v1/inbound/messages":{"get":{"tags":["inbound"],"summary":"List inbound messages visible to the credential","operationId":"listInboundMessages","responses":{"200":{"description":"Successful list response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResourceListResponse"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"}},"parameters":[{"$ref":"#/components/parameters/inboxIdQuery"},{"$ref":"#/components/parameters/status"},{"$ref":"#/components/parameters/limit"}]}},"/v1/inboxes":{"post":{"tags":["inboxes"],"summary":"Create or update a project inbox","operationId":"upsertInbox","responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResourceResponse"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InboxWriteRequest"}}}}},"get":{"tags":["inboxes"],"summary":"List project inboxes","operationId":"listInboxes","responses":{"200":{"description":"Successful list response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResourceListResponse"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"}},"parameters":[{"$ref":"#/components/parameters/limit"}]}},"/v1/messages/{messageId}/cancel":{"post":{"tags":["messages"],"summary":"Cancel a queued message","operationId":"cancelMessage","responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResourceResponse"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"409":{"$ref":"#/components/responses/Conflict"}},"parameters":[{"$ref":"#/components/parameters/messageId"}]}},"/v1/events/{eventId}/attempts":{"get":{"tags":["events"],"summary":"List webhook attempts for one outbound lifecycle event","operationId":"listEventAttempts","responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResourceResponse"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"}},"parameters":[{"$ref":"#/components/parameters/eventId"}]}},"/v1/inbound/messages/{inboundId}/attempts":{"get":{"tags":["inbound"],"summary":"List webhook delivery attempts for an inbound message","operationId":"listInboundAttempts","responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResourceResponse"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"}},"parameters":[{"$ref":"#/components/parameters/inboundId"}]}},"/v1/reply-routes/{routeId}":{"get":{"tags":["reply-routes"],"summary":"Inspect one reply route","operationId":"getReplyRoute","responses":{"200":{"description":"Reply route without the raw address token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReplyRouteResponse"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"}},"parameters":[{"$ref":"#/components/parameters/routeId"}]},"patch":{"tags":["reply-routes"],"summary":"Enable, disable, or change route expiry","operationId":"updateReplyRoute","responses":{"200":{"description":"Updated reply route.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReplyRouteResponse"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"}},"parameters":[{"$ref":"#/components/parameters/routeId"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReplyRoutePatchRequest"}}}}}},"/v1/inbound/messages/{inboundId}/raw":{"get":{"tags":["inbound"],"summary":"Download the raw RFC822 message","operationId":"downloadInboundRaw","responses":{"200":{"description":"Raw RFC822 message.","content":{"message/rfc822":{"schema":{"type":"string","format":"binary"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"}},"parameters":[{"$ref":"#/components/parameters/inboundId"}]}},"/v1/inbound/messages/{inboundId}/replay":{"post":{"tags":["inbound"],"summary":"Replay an existing inbound webhook event","operationId":"replayInboundMessage","responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResourceResponse"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"}},"parameters":[{"$ref":"#/components/parameters/inboundId"}]}},"/v1/events/{eventId}/replay":{"post":{"tags":["events"],"summary":"Replay an outbound lifecycle event","operationId":"replayEvent","responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResourceResponse"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"}},"parameters":[{"$ref":"#/components/parameters/eventId"}]}},"/v1/inbound/messages/{inboundId}/attachments/{attachmentId}":{"get":{"tags":["inbound"],"summary":"Download one stored attachment","operationId":"downloadInboundAttachment","responses":{"200":{"description":"Attachment bytes.","content":{"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"}},"parameters":[{"$ref":"#/components/parameters/inboundId"},{"$ref":"#/components/parameters/attachmentId"},{"$ref":"#/components/parameters/expires"},{"$ref":"#/components/parameters/signature"}],"security":[{"bearerAuth":[]},{"attachmentExpires":[],"attachmentSignature":[]}]}},"/v1/openapi.json":{"get":{"tags":["meta"],"summary":"Fetch the public product API contract","operationId":"getPublicOpenApi","responses":{"200":{"description":"OpenAPI 3.1 document.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}}},"security":[]}},"/v1/inboxes/{inboxId}":{"get":{"tags":["inboxes"],"summary":"Inspect one inbox","operationId":"getInbox","responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResourceResponse"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"}},"parameters":[{"$ref":"#/components/parameters/inboxId"}]},"patch":{"tags":["inboxes"],"summary":"Update one inbox","operationId":"updateInbox","responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResourceResponse"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"}},"parameters":[{"$ref":"#/components/parameters/inboxId"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InboxPatchRequest"}}}}}},"/v1/inbound/messages/{inboundId}/payload":{"get":{"tags":["inbound"],"summary":"Fetch the stored inbound webhook payload","operationId":"getInboundPayload","responses":{"200":{"description":"Stored stable inbound email envelope.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InboundEmailPayload"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"}},"parameters":[{"$ref":"#/components/parameters/inboundId"}]}},"/v1/reply-routes":{"post":{"tags":["reply-routes"],"summary":"Create an opaque Reply-To address","operationId":"createReplyRoute","responses":{"200":{"description":"Created route or exact idempotent retry.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReplyRouteResponse"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"409":{"$ref":"#/components/responses/Conflict"},"410":{"$ref":"#/components/responses/Gone"},"413":{"$ref":"#/components/responses/TooLarge"}},"parameters":[{"$ref":"#/components/parameters/idempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReplyRouteCreateRequest"}}}}},"get":{"tags":["reply-routes"],"summary":"List reply routes for the authenticated project","operationId":"listReplyRoutes","responses":{"200":{"description":"Page of reply routes.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReplyRouteListResponse"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"}},"parameters":[{"$ref":"#/components/parameters/inboxIdQuery"},{"$ref":"#/components/parameters/cursor"},{"$ref":"#/components/parameters/limit"}]}},"/v1/inboxes/{inboxId}/test-webhook":{"post":{"tags":["inboxes"],"summary":"Send a signed test event to an inbox webhook","operationId":"testInboxWebhook","responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResourceResponse"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"}},"parameters":[{"$ref":"#/components/parameters/inboxId"}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InboxWebhookTestRequest"}}}}}},"/v1/messages/{messageId}/attempts":{"get":{"tags":["messages"],"summary":"List delivery attempts for one message","operationId":"listMessageAttempts","responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResourceResponse"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"}},"parameters":[{"$ref":"#/components/parameters/messageId"}]}},"/v1/messages/{messageId}/deliveries":{"get":{"tags":["messages"],"summary":"List recipient deliveries for one message","operationId":"listMessageDeliveries","responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResourceResponse"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"}},"parameters":[{"$ref":"#/components/parameters/messageId"}]}}}}