{
  "openapi": "3.1.0",
  "info": {
    "title": "Stormedo public API",
    "description": "Managed outbound HTTP delivery. A 202 confirms durable acceptance, not destination completion. Server errors and lost responses can leave acceptance unknown: retry unchanged input with the original idempotency key within 24 hours. Delivery is at least once. See https://stormedo.com/docs/ for procedures, destination restrictions, and recovery guidance.",
    "version": "0.1.0"
  },
  "servers": [
    {
      "url": "https://api.stormedo.com"
    }
  ],
  "paths": {
    "/projects/{project_id}/delivery-signing-keys/jwks.json": {
      "get": {
        "tags": [
          "delivery-signatures"
        ],
        "operationId": "getDeliverySigningKeys",
        "parameters": [
          {
            "name": "project_id",
            "in": "path",
            "description": "Project public ID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Current project delivery verification keys",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/JwkSet"
                }
              }
            }
          },
          "304": {
            "description": "JWKS has not changed"
          }
        }
      }
    },
    "/requests": {
      "get": {
        "tags": [
          "requests"
        ],
        "operationId": "listRequests",
        "parameters": [
          {
            "name": "status",
            "in": "query",
            "required": false,
            "schema": {
              "$ref": "#/components/schemas/RequestStatus"
            }
          },
          {
            "name": "search",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "method",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "source",
            "in": "query",
            "required": false,
            "schema": {
              "$ref": "#/components/schemas/RequestSource"
            }
          },
          {
            "name": "from",
            "in": "query",
            "description": "Inclusive RFC 3339 creation-time boundary.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "to",
            "in": "query",
            "description": "Exclusive RFC 3339 creation-time boundary, later than from.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "cursor",
            "in": "query",
            "description": "Opaque next_cursor from the preceding page.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int64",
              "default": 50,
              "maximum": 100,
              "minimum": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "API key project request page",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse_RequestListPage"
                }
              }
            }
          },
          "401": {
            "description": "Invalid API key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse_Value"
                }
              }
            }
          },
          "422": {
            "description": "Invalid request filter",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse_Value"
                }
              }
            }
          }
        },
        "security": [
          {
            "api_key": []
          }
        ]
      },
      "post": {
        "tags": [
          "requests"
        ],
        "operationId": "createRequest",
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Optional stable key for deduplicating retries for 24 hours",
            "required": false,
            "schema": {
              "type": [
                "string",
                "null"
              ]
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateAdvancedRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "202": {
            "description": "Request accepted durably",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse_EnqueuedRequest"
                }
              }
            }
          },
          "401": {
            "description": "Invalid API key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse_Value"
                }
              }
            }
          },
          "409": {
            "description": "Idempotency key reused for different request input",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse_Value"
                }
              }
            }
          },
          "413": {
            "description": "Complete incoming body exceeds 512 KiB; response may not use the JSON envelope"
          },
          "422": {
            "description": "Invalid request configuration",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse_Value"
                }
              }
            }
          },
          "429": {
            "description": "Monthly request allowance exhausted",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse_Value"
                }
              }
            }
          },
          "500": {
            "description": "Internal failure; operation outcome may be unknown",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse_Value"
                }
              }
            }
          },
          "502": {
            "description": "Dependency unavailable; acceptance may be unknown. Recover with the original idempotency key and unchanged input.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse_Value"
                }
              }
            }
          },
          "503": {
            "description": "Dependency unavailable; operation outcome may be unknown",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse_Value"
                }
              }
            }
          }
        },
        "security": [
          {
            "api_key": []
          }
        ]
      }
    },
    "/requests/batch": {
      "post": {
        "tags": [
          "requests"
        ],
        "operationId": "createRequestBatch",
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Required stable key for safely retrying the complete batch for 24 hours",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateBatchRequests"
              }
            }
          },
          "required": true
        },
        "responses": {
          "202": {
            "description": "Every batch item accepted durably",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse_BatchEnqueuedRequests"
                }
              }
            }
          },
          "401": {
            "description": "Invalid API key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse_Value"
                }
              }
            }
          },
          "409": {
            "description": "Batch or item idempotency key conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse_Value"
                }
              }
            }
          },
          "413": {
            "description": "Complete incoming body exceeds 32 MiB; response may not use the JSON envelope"
          },
          "422": {
            "description": "Invalid batch or request configuration",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse_Value"
                }
              }
            }
          },
          "429": {
            "description": "Insufficient monthly allowance for the complete batch",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse_Value"
                }
              }
            }
          },
          "500": {
            "description": "Internal failure; operation outcome may be unknown",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse_Value"
                }
              }
            }
          },
          "502": {
            "description": "Dependency unavailable; acceptance may be unknown. Recover with the original idempotency key and unchanged input.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse_Value"
                }
              }
            }
          },
          "503": {
            "description": "Dependency unavailable; operation outcome may be unknown",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse_Value"
                }
              }
            }
          }
        },
        "security": [
          {
            "api_key": []
          }
        ]
      }
    },
    "/requests/{request_id}": {
      "get": {
        "tags": [
          "requests"
        ],
        "operationId": "getRequest",
        "parameters": [
          {
            "name": "request_id",
            "in": "path",
            "description": "Request public ID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Request detail and attempts",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse_RequestDetail"
                }
              }
            }
          },
          "401": {
            "description": "Invalid API key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse_Value"
                }
              }
            }
          },
          "404": {
            "description": "Request not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse_Value"
                }
              }
            }
          }
        },
        "security": [
          {
            "api_key": []
          }
        ]
      }
    },
    "/requests/{request_id}/attempts": {
      "get": {
        "tags": [
          "requests"
        ],
        "operationId": "listRequestAttempts",
        "parameters": [
          {
            "name": "request_id",
            "in": "path",
            "description": "Request public ID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Completed delivery attempts",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse_Vec_RequestAttemptSummary"
                }
              }
            }
          },
          "401": {
            "description": "Invalid API key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse_Value"
                }
              }
            }
          },
          "404": {
            "description": "Request not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse_Value"
                }
              }
            }
          }
        },
        "security": [
          {
            "api_key": []
          }
        ]
      }
    },
    "/requests/{request_id}/cancel": {
      "post": {
        "tags": [
          "requests"
        ],
        "operationId": "cancelRequest",
        "parameters": [
          {
            "name": "request_id",
            "in": "path",
            "description": "Request public ID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Request was already cancelled",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse_RequestCancellation"
                }
              }
            }
          },
          "202": {
            "description": "Cancellation accepted",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse_RequestCancellation"
                }
              }
            }
          },
          "401": {
            "description": "Invalid API key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse_Value"
                }
              }
            }
          },
          "404": {
            "description": "Request not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse_Value"
                }
              }
            }
          },
          "409": {
            "description": "Request is already complete",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse_Value"
                }
              }
            }
          },
          "500": {
            "description": "Internal failure; operation outcome may be unknown",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse_Value"
                }
              }
            }
          },
          "502": {
            "description": "Dependency unavailable; acceptance may be unknown. Recover with the original idempotency key and unchanged input.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse_Value"
                }
              }
            }
          },
          "503": {
            "description": "Dependency unavailable; operation outcome may be unknown",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse_Value"
                }
              }
            }
          }
        },
        "security": [
          {
            "api_key": []
          }
        ]
      }
    },
    "/requests/{request_id}/replay": {
      "post": {
        "tags": [
          "requests"
        ],
        "operationId": "replayRequest",
        "parameters": [
          {
            "name": "request_id",
            "in": "path",
            "description": "Completed request public ID",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Optional stable key for deduplicating this replay for 24 hours",
            "required": false,
            "schema": {
              "type": [
                "string",
                "null"
              ]
            }
          }
        ],
        "responses": {
          "202": {
            "description": "Replay accepted as a new request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse_EnqueuedRequest"
                }
              }
            }
          },
          "401": {
            "description": "Invalid API key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse_Value"
                }
              }
            }
          },
          "404": {
            "description": "Request not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse_Value"
                }
              }
            }
          },
          "409": {
            "description": "Request is still active or idempotency key conflicts",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse_Value"
                }
              }
            }
          },
          "422": {
            "description": "Stored request no longer passes current delivery validation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse_Value"
                }
              }
            }
          },
          "429": {
            "description": "Workspace plan allowance exhausted",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse_Value"
                }
              }
            }
          },
          "500": {
            "description": "Internal failure; operation outcome may be unknown",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse_Value"
                }
              }
            }
          },
          "502": {
            "description": "Dependency unavailable; acceptance may be unknown. Recover with the original idempotency key and unchanged input.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse_Value"
                }
              }
            }
          },
          "503": {
            "description": "Dependency unavailable; operation outcome may be unknown",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse_Value"
                }
              }
            }
          }
        },
        "security": [
          {
            "api_key": []
          }
        ]
      }
    },
    "/schedules": {
      "get": {
        "tags": [
          "schedules"
        ],
        "operationId": "listSchedules",
        "responses": {
          "200": {
            "description": "Schedules for the API key project",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse_Vec_ScheduleSummary"
                }
              }
            }
          },
          "401": {
            "description": "Invalid API key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse_Value"
                }
              }
            }
          }
        },
        "security": [
          {
            "api_key": []
          }
        ]
      },
      "post": {
        "tags": [
          "schedules"
        ],
        "operationId": "createSchedule",
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Stable key for safely retrying this creation request",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateScheduleRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Schedule created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse_ScheduleSummary"
                }
              }
            }
          },
          "401": {
            "description": "Invalid API key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse_Value"
                }
              }
            }
          },
          "409": {
            "description": "Idempotency key reused with different schedule input",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse_Value"
                }
              }
            }
          },
          "413": {
            "description": "Complete incoming schedule body exceeds 512 KiB; response may not use the JSON envelope",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse_Value"
                }
              }
            }
          },
          "422": {
            "description": "Validation error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse_Value"
                }
              }
            }
          },
          "429": {
            "description": "Workspace plan allowance exhausted",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse_Value"
                }
              }
            }
          },
          "500": {
            "description": "Internal failure; operation outcome may be unknown",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse_Value"
                }
              }
            }
          },
          "502": {
            "description": "Dependency unavailable; operation outcome may be unknown",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse_Value"
                }
              }
            }
          },
          "503": {
            "description": "Dependency unavailable; operation outcome may be unknown",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse_Value"
                }
              }
            }
          }
        },
        "security": [
          {
            "api_key": []
          }
        ]
      }
    },
    "/schedules/{schedule_id}": {
      "get": {
        "tags": [
          "schedules"
        ],
        "operationId": "getSchedule",
        "parameters": [
          {
            "name": "schedule_id",
            "in": "path",
            "description": "Schedule public ID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Schedule detail",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse_ScheduleDetail"
                }
              }
            }
          },
          "401": {
            "description": "Invalid API key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse_Value"
                }
              }
            }
          },
          "404": {
            "description": "Schedule not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse_Value"
                }
              }
            }
          }
        },
        "security": [
          {
            "api_key": []
          }
        ]
      },
      "delete": {
        "tags": [
          "schedules"
        ],
        "operationId": "deleteSchedule",
        "parameters": [
          {
            "name": "schedule_id",
            "in": "path",
            "description": "Schedule public ID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Schedule deleted"
          },
          "401": {
            "description": "Invalid API key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse_Value"
                }
              }
            }
          },
          "500": {
            "description": "Internal failure; operation outcome may be unknown",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse_Value"
                }
              }
            }
          },
          "502": {
            "description": "Dependency unavailable; operation outcome may be unknown",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse_Value"
                }
              }
            }
          },
          "503": {
            "description": "Dependency unavailable; operation outcome may be unknown",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse_Value"
                }
              }
            }
          }
        },
        "security": [
          {
            "api_key": []
          }
        ]
      },
      "patch": {
        "tags": [
          "schedules"
        ],
        "operationId": "updateSchedule",
        "parameters": [
          {
            "name": "schedule_id",
            "in": "path",
            "description": "Schedule public ID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateScheduleRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Schedule updated",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse_ScheduleSummary"
                }
              }
            }
          },
          "401": {
            "description": "Invalid API key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse_Value"
                }
              }
            }
          },
          "404": {
            "description": "Schedule not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse_Value"
                }
              }
            }
          },
          "413": {
            "description": "Complete incoming schedule body exceeds 512 KiB; response may not use the JSON envelope",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse_Value"
                }
              }
            }
          },
          "500": {
            "description": "Internal failure; operation outcome may be unknown",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse_Value"
                }
              }
            }
          },
          "502": {
            "description": "Dependency unavailable; operation outcome may be unknown",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse_Value"
                }
              }
            }
          },
          "503": {
            "description": "Dependency unavailable; operation outcome may be unknown",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse_Value"
                }
              }
            }
          }
        },
        "security": [
          {
            "api_key": []
          }
        ]
      }
    },
    "/schedules/{schedule_id}/pause": {
      "post": {
        "tags": [
          "schedules"
        ],
        "operationId": "pauseSchedule",
        "parameters": [
          {
            "name": "schedule_id",
            "in": "path",
            "description": "Schedule public ID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Schedule paused",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse_ScheduleSummary"
                }
              }
            }
          },
          "401": {
            "description": "Invalid API key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse_Value"
                }
              }
            }
          },
          "500": {
            "description": "Internal failure; operation outcome may be unknown",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse_Value"
                }
              }
            }
          },
          "502": {
            "description": "Dependency unavailable; operation outcome may be unknown",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse_Value"
                }
              }
            }
          },
          "503": {
            "description": "Dependency unavailable; operation outcome may be unknown",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse_Value"
                }
              }
            }
          }
        },
        "security": [
          {
            "api_key": []
          }
        ]
      }
    },
    "/schedules/{schedule_id}/resume": {
      "post": {
        "tags": [
          "schedules"
        ],
        "operationId": "resumeSchedule",
        "parameters": [
          {
            "name": "schedule_id",
            "in": "path",
            "description": "Schedule public ID",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Schedule resumed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse_ScheduleSummary"
                }
              }
            }
          },
          "401": {
            "description": "Invalid API key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse_Value"
                }
              }
            }
          },
          "500": {
            "description": "Internal failure; operation outcome may be unknown",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse_Value"
                }
              }
            }
          },
          "502": {
            "description": "Dependency unavailable; operation outcome may be unknown",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse_Value"
                }
              }
            }
          },
          "503": {
            "description": "Dependency unavailable; operation outcome may be unknown",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse_Value"
                }
              }
            }
          }
        },
        "security": [
          {
            "api_key": []
          }
        ]
      }
    },
    "/send": {
      "post": {
        "tags": [
          "requests"
        ],
        "operationId": "sendRawRequest",
        "parameters": [
          {
            "name": "url",
            "in": "query",
            "description": "Public HTTPS destination, at most 2048 bytes, without credentials or fragment.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "method",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "default": "POST"
            }
          },
          {
            "name": "retry",
            "in": "query",
            "description": "Additional retries after the first attempt.",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 0,
              "maximum": 19,
              "minimum": 0
            }
          },
          {
            "name": "delay",
            "in": "query",
            "description": "Whole-second relative delay from 1s through 30d; mutually exclusive with deliver_at.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "deliver_at",
            "in": "query",
            "description": "RFC 3339 time within 30 days of now. Allowed past times run immediately.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "timeout",
            "in": "query",
            "description": "Per-attempt timeout from 1s through 5m, in whole seconds or minutes.",
            "required": false,
            "schema": {
              "type": "string",
              "default": "50s"
            }
          },
          {
            "name": "queue",
            "in": "query",
            "description": "Label only; no FIFO, concurrency, or rate guarantee.",
            "required": false,
            "schema": {
              "type": "string",
              "default": "default"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Optional stable key for deduplicating retries for 24 hours",
            "required": false,
            "schema": {
              "type": [
                "string",
                "null"
              ]
            }
          }
        ],
        "requestBody": {
          "description": "Exact bytes forwarded unchanged, at most 256 KiB. Content-Type is forwarded separately. Use X-Forward-<name> for destination headers.",
          "content": {
            "*/*": {
              "schema": {
                "oneOf": [
                  {
                    "type": "null"
                  },
                  {
                    "$ref": "#/components/schemas/RawDeliveryBody"
                  }
                ]
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Request accepted durably",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse_EnqueuedRequest"
                }
              }
            }
          },
          "401": {
            "description": "Invalid API key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse_Value"
                }
              }
            }
          },
          "409": {
            "description": "Idempotency key reused for different request input",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse_Value"
                }
              }
            }
          },
          "413": {
            "description": "Complete incoming body exceeds 256 KiB; response may not use the JSON envelope"
          },
          "422": {
            "description": "Invalid destination",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse_Value"
                }
              }
            }
          },
          "429": {
            "description": "Monthly request allowance exhausted",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse_Value"
                }
              }
            }
          },
          "500": {
            "description": "Internal failure; operation outcome may be unknown",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse_Value"
                }
              }
            }
          },
          "502": {
            "description": "Dependency unavailable; acceptance may be unknown. Recover with the original idempotency key and unchanged input.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse_Value"
                }
              }
            }
          },
          "503": {
            "description": "Dependency unavailable; operation outcome may be unknown",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiResponse_Value"
                }
              }
            }
          }
        },
        "security": [
          {
            "api_key": []
          }
        ]
      }
    }
  },
  "components": {
    "schemas": {
      "AdvancedBackoff": {
        "type": "string",
        "enum": [
          "exponential"
        ]
      },
      "AdvancedRetry": {
        "type": "object",
        "properties": {
          "backoff": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/AdvancedBackoff"
              }
            ],
            "default": "exponential"
          },
          "max_attempts": {
            "type": [
              "integer",
              "null"
            ],
            "format": "int32",
            "description": "Total attempts including the initial delivery.",
            "default": 3,
            "maximum": 20,
            "minimum": 1
          }
        },
        "additionalProperties": false
      },
      "ApiError": {
        "type": "object",
        "required": [
          "code",
          "message"
        ],
        "properties": {
          "code": {
            "type": "string"
          },
          "details": {},
          "message": {
            "type": "string"
          }
        }
      },
      "ApiResponse_BatchEnqueuedRequests": {
        "type": "object",
        "required": [
          "success",
          "request_id"
        ],
        "properties": {
          "data": {
            "type": "object",
            "required": [
              "requests"
            ],
            "properties": {
              "requests": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/EnqueuedRequest"
                }
              }
            }
          },
          "error": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/ApiError"
              }
            ]
          },
          "meta": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/Meta"
              }
            ]
          },
          "request_id": {
            "type": "string"
          },
          "success": {
            "type": "boolean"
          }
        }
      },
      "ApiResponse_EnqueuedRequest": {
        "type": "object",
        "required": [
          "success",
          "request_id"
        ],
        "properties": {
          "data": {
            "type": "object",
            "required": [
              "id",
              "project_id",
              "status",
              "created_at"
            ],
            "properties": {
              "created_at": {
                "type": "string"
              },
              "id": {
                "type": "string"
              },
              "project_id": {
                "type": "string"
              },
              "replayed_from_request_id": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "scheduled_at": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "status": {
                "type": "string"
              }
            }
          },
          "error": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/ApiError"
              }
            ]
          },
          "meta": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/Meta"
              }
            ]
          },
          "request_id": {
            "type": "string"
          },
          "success": {
            "type": "boolean"
          }
        }
      },
      "ApiResponse_RequestCancellation": {
        "type": "object",
        "required": [
          "success",
          "request_id"
        ],
        "properties": {
          "data": {
            "type": "object",
            "required": [
              "id",
              "status"
            ],
            "properties": {
              "id": {
                "type": "string"
              },
              "status": {
                "$ref": "#/components/schemas/RequestCancellationStatus"
              }
            }
          },
          "error": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/ApiError"
              }
            ]
          },
          "meta": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/Meta"
              }
            ]
          },
          "request_id": {
            "type": "string"
          },
          "success": {
            "type": "boolean"
          }
        }
      },
      "ApiResponse_RequestDetail": {
        "type": "object",
        "required": [
          "success",
          "request_id"
        ],
        "properties": {
          "data": {
            "type": "object",
            "required": [
              "id",
              "url",
              "method",
              "max_attempts",
              "timeout_seconds",
              "queue",
              "metadata",
              "headers",
              "status",
              "created_at",
              "updated_at",
              "attempts"
            ],
            "properties": {
              "attempts": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/RequestAttemptSummary"
                }
              },
              "cancelled_at": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "completed_at": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "content_type": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "created_at": {
                "type": "string"
              },
              "headers": {
                "$ref": "#/components/schemas/BTreeMap"
              },
              "id": {
                "type": "string"
              },
              "max_attempts": {
                "type": "integer",
                "format": "int32",
                "minimum": 0
              },
              "metadata": {
                "$ref": "#/components/schemas/BTreeMap"
              },
              "method": {
                "type": "string"
              },
              "queue": {
                "type": "string"
              },
              "replayed_from_request_id": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "schedule_id": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "scheduled_at": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "started_at": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "status": {
                "$ref": "#/components/schemas/RequestStatus"
              },
              "timeout_seconds": {
                "type": "integer",
                "format": "int32",
                "minimum": 0
              },
              "updated_at": {
                "type": "string"
              },
              "url": {
                "type": "string"
              }
            }
          },
          "error": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/ApiError"
              }
            ]
          },
          "meta": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/Meta"
              }
            ]
          },
          "request_id": {
            "type": "string"
          },
          "success": {
            "type": "boolean"
          }
        }
      },
      "ApiResponse_RequestListPage": {
        "type": "object",
        "required": [
          "success",
          "request_id"
        ],
        "properties": {
          "data": {
            "type": "object",
            "required": [
              "items",
              "history_retention_days",
              "history_cutoff_at",
              "has_hidden_history"
            ],
            "properties": {
              "has_hidden_history": {
                "type": "boolean"
              },
              "history_cutoff_at": {
                "type": "string"
              },
              "history_retention_days": {
                "type": "integer",
                "format": "int32",
                "minimum": 0
              },
              "items": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/RequestSummary"
                }
              },
              "next_cursor": {
                "type": [
                  "string",
                  "null"
                ]
              }
            }
          },
          "error": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/ApiError"
              }
            ]
          },
          "meta": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/Meta"
              }
            ]
          },
          "request_id": {
            "type": "string"
          },
          "success": {
            "type": "boolean"
          }
        }
      },
      "ApiResponse_ScheduleDetail": {
        "type": "object",
        "required": [
          "success",
          "request_id"
        ],
        "properties": {
          "data": {
            "type": "object",
            "required": [
              "id",
              "name",
              "timing",
              "status",
              "request",
              "created_at",
              "updated_at"
            ],
            "properties": {
              "created_at": {
                "type": "string"
              },
              "id": {
                "type": "string"
              },
              "last_run_at": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "last_run_outcome": {
                "oneOf": [
                  {
                    "type": "null"
                  },
                  {
                    "$ref": "#/components/schemas/ScheduleRunOutcome"
                  }
                ]
              },
              "name": {
                "type": "string"
              },
              "next_run_at": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "request": {
                "$ref": "#/components/schemas/ScheduleRequestDefinition"
              },
              "status": {
                "$ref": "#/components/schemas/ScheduleStatus"
              },
              "timing": {
                "$ref": "#/components/schemas/ScheduleTimingDefinition"
              },
              "updated_at": {
                "type": "string"
              }
            }
          },
          "error": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/ApiError"
              }
            ]
          },
          "meta": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/Meta"
              }
            ]
          },
          "request_id": {
            "type": "string"
          },
          "success": {
            "type": "boolean"
          }
        }
      },
      "ApiResponse_ScheduleSummary": {
        "type": "object",
        "required": [
          "success",
          "request_id"
        ],
        "properties": {
          "data": {
            "type": "object",
            "required": [
              "id",
              "name",
              "timing",
              "status",
              "url",
              "retry",
              "created_at",
              "updated_at"
            ],
            "properties": {
              "created_at": {
                "type": "string"
              },
              "id": {
                "type": "string"
              },
              "last_run_at": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "last_run_outcome": {
                "oneOf": [
                  {
                    "type": "null"
                  },
                  {
                    "$ref": "#/components/schemas/ScheduleRunOutcome"
                  }
                ]
              },
              "name": {
                "type": "string"
              },
              "next_run_at": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "retry": {
                "type": "integer",
                "format": "int32",
                "minimum": 0
              },
              "status": {
                "$ref": "#/components/schemas/ScheduleStatus"
              },
              "timing": {
                "$ref": "#/components/schemas/ScheduleTimingDefinition"
              },
              "updated_at": {
                "type": "string"
              },
              "url": {
                "type": "string"
              }
            }
          },
          "error": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/ApiError"
              }
            ]
          },
          "meta": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/Meta"
              }
            ]
          },
          "request_id": {
            "type": "string"
          },
          "success": {
            "type": "boolean"
          }
        }
      },
      "ApiResponse_Value": {
        "type": "object",
        "required": [
          "success",
          "request_id"
        ],
        "properties": {
          "data": {},
          "error": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/ApiError"
              }
            ]
          },
          "meta": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/Meta"
              }
            ]
          },
          "request_id": {
            "type": "string"
          },
          "success": {
            "type": "boolean"
          }
        }
      },
      "ApiResponse_Vec_RequestAttemptSummary": {
        "type": "object",
        "required": [
          "success",
          "request_id"
        ],
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "required": [
                "attempt_number",
                "status",
                "duration_ms",
                "started_at",
                "completed_at"
              ],
              "properties": {
                "attempt_number": {
                  "type": "integer",
                  "format": "int32"
                },
                "completed_at": {
                  "type": "string"
                },
                "duration_ms": {
                  "type": "integer",
                  "format": "int64",
                  "minimum": 0
                },
                "error_message": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "response_status_code": {
                  "type": [
                    "integer",
                    "null"
                  ],
                  "format": "int32",
                  "minimum": 0
                },
                "retry": {
                  "oneOf": [
                    {
                      "type": "null"
                    },
                    {
                      "$ref": "#/components/schemas/RequestRetryDecision"
                    }
                  ]
                },
                "started_at": {
                  "type": "string"
                },
                "status": {
                  "$ref": "#/components/schemas/DeliveryAttemptStatus"
                }
              }
            }
          },
          "error": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/ApiError"
              }
            ]
          },
          "meta": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/Meta"
              }
            ]
          },
          "request_id": {
            "type": "string"
          },
          "success": {
            "type": "boolean"
          }
        }
      },
      "ApiResponse_Vec_ScheduleSummary": {
        "type": "object",
        "required": [
          "success",
          "request_id"
        ],
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "required": [
                "id",
                "name",
                "timing",
                "status",
                "url",
                "retry",
                "created_at",
                "updated_at"
              ],
              "properties": {
                "created_at": {
                  "type": "string"
                },
                "id": {
                  "type": "string"
                },
                "last_run_at": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "last_run_outcome": {
                  "oneOf": [
                    {
                      "type": "null"
                    },
                    {
                      "$ref": "#/components/schemas/ScheduleRunOutcome"
                    }
                  ]
                },
                "name": {
                  "type": "string"
                },
                "next_run_at": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "retry": {
                  "type": "integer",
                  "format": "int32",
                  "minimum": 0
                },
                "status": {
                  "$ref": "#/components/schemas/ScheduleStatus"
                },
                "timing": {
                  "$ref": "#/components/schemas/ScheduleTimingDefinition"
                },
                "updated_at": {
                  "type": "string"
                },
                "url": {
                  "type": "string"
                }
              }
            }
          },
          "error": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/ApiError"
              }
            ]
          },
          "meta": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/Meta"
              }
            ]
          },
          "request_id": {
            "type": "string"
          },
          "success": {
            "type": "boolean"
          }
        }
      },
      "BTreeMap": {
        "type": "object",
        "additionalProperties": {
          "type": "string"
        },
        "propertyNames": {
          "type": "string"
        }
      },
      "BatchEnqueuedRequests": {
        "type": "object",
        "required": [
          "requests"
        ],
        "properties": {
          "requests": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EnqueuedRequest"
            }
          }
        }
      },
      "CreateAdvancedRequest": {
        "type": "object",
        "required": [
          "url"
        ],
        "properties": {
          "body": {
            "description": "Omitted means no body; explicit null sends JSON null. Serialized body limit: 256 KiB."
          },
          "delay": {
            "type": [
              "string",
              "null"
            ]
          },
          "deliver_at": {
            "type": [
              "string",
              "null"
            ]
          },
          "headers": {
            "type": "object",
            "description": "Destination headers: at most 64 entries and 32 KiB combined. Reserved headers are rejected.",
            "additionalProperties": {
              "type": "string"
            },
            "propertyNames": {
              "type": "string"
            }
          },
          "metadata": {
            "type": "object",
            "description": "Not forwarded. Up to 32 string entries; keys 64 bytes, values 1024 bytes, combined 16 KiB.",
            "additionalProperties": {
              "type": "string"
            },
            "propertyNames": {
              "type": "string"
            }
          },
          "method": {
            "type": [
              "string",
              "null"
            ],
            "default": "POST"
          },
          "queue": {
            "type": [
              "string",
              "null"
            ],
            "default": "default",
            "maxLength": 64
          },
          "retry": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/AdvancedRetry"
              }
            ]
          },
          "timeout": {
            "type": [
              "string",
              "null"
            ],
            "description": "Delivery timeout per attempt, from 1s through 5m.",
            "default": "50s"
          },
          "url": {
            "type": "string",
            "maxLength": 2048
          }
        },
        "additionalProperties": false
      },
      "CreateBatchRequest": {
        "type": "object",
        "required": [
          "url"
        ],
        "properties": {
          "body": {
            "description": "Omitted means no body; explicit null sends JSON null. Serialized body limit: 256 KiB."
          },
          "delay": {
            "type": [
              "string",
              "null"
            ]
          },
          "deliver_at": {
            "type": [
              "string",
              "null"
            ]
          },
          "headers": {
            "type": "object",
            "description": "Destination headers: at most 64 entries and 32 KiB combined. Reserved headers are rejected.",
            "additionalProperties": {
              "type": "string"
            },
            "propertyNames": {
              "type": "string"
            }
          },
          "idempotency_key": {
            "type": [
              "string",
              "null"
            ]
          },
          "metadata": {
            "type": "object",
            "description": "Not forwarded. Up to 32 string entries; keys 64 bytes, values 1024 bytes, combined 16 KiB.",
            "additionalProperties": {
              "type": "string"
            },
            "propertyNames": {
              "type": "string"
            }
          },
          "method": {
            "type": [
              "string",
              "null"
            ],
            "default": "POST"
          },
          "queue": {
            "type": [
              "string",
              "null"
            ],
            "default": "default",
            "maxLength": 64
          },
          "retry": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/AdvancedRetry"
              }
            ]
          },
          "timeout": {
            "type": [
              "string",
              "null"
            ],
            "description": "Delivery timeout per attempt, from 1s through 5m.",
            "default": "50s"
          },
          "url": {
            "type": "string",
            "maxLength": 2048
          }
        },
        "additionalProperties": false
      },
      "CreateBatchRequests": {
        "type": "object",
        "required": [
          "requests"
        ],
        "properties": {
          "requests": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CreateBatchRequest"
            },
            "maxItems": 100,
            "minItems": 1
          }
        },
        "additionalProperties": false
      },
      "CreateScheduleRequest": {
        "type": "object",
        "required": [
          "name",
          "timing",
          "request"
        ],
        "properties": {
          "name": {
            "type": "string"
          },
          "request": {
            "$ref": "#/components/schemas/ScheduleRequestInput"
          },
          "timing": {
            "$ref": "#/components/schemas/ScheduleTimingInput"
          }
        }
      },
      "DeliveryAttemptStatus": {
        "type": "string",
        "enum": [
          "succeeded",
          "failed"
        ]
      },
      "EnqueuedRequest": {
        "type": "object",
        "required": [
          "id",
          "project_id",
          "status",
          "created_at"
        ],
        "properties": {
          "created_at": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "project_id": {
            "type": "string"
          },
          "replayed_from_request_id": {
            "type": [
              "string",
              "null"
            ]
          },
          "scheduled_at": {
            "type": [
              "string",
              "null"
            ]
          },
          "status": {
            "type": "string"
          }
        }
      },
      "JwkSet": {
        "type": "object",
        "required": [
          "keys"
        ],
        "properties": {
          "keys": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PublicJwk"
            }
          }
        }
      },
      "Meta": {
        "type": "object",
        "required": [
          "timestamp"
        ],
        "properties": {
          "timestamp": {
            "type": "string"
          }
        }
      },
      "PublicJwk": {
        "type": "object",
        "required": [
          "kty",
          "crv",
          "alg",
          "use",
          "kid",
          "x"
        ],
        "properties": {
          "alg": {
            "type": "string"
          },
          "crv": {
            "type": "string"
          },
          "kid": {
            "type": "string"
          },
          "kty": {
            "type": "string"
          },
          "use": {
            "type": "string"
          },
          "x": {
            "type": "string"
          }
        }
      },
      "RawDeliveryBody": {
        "type": "string",
        "format": "binary"
      },
      "RequestAttemptSummary": {
        "type": "object",
        "required": [
          "attempt_number",
          "status",
          "duration_ms",
          "started_at",
          "completed_at"
        ],
        "properties": {
          "attempt_number": {
            "type": "integer",
            "format": "int32"
          },
          "completed_at": {
            "type": "string"
          },
          "duration_ms": {
            "type": "integer",
            "format": "int64",
            "minimum": 0
          },
          "error_message": {
            "type": [
              "string",
              "null"
            ]
          },
          "response_status_code": {
            "type": [
              "integer",
              "null"
            ],
            "format": "int32",
            "minimum": 0
          },
          "retry": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/RequestRetryDecision"
              }
            ]
          },
          "started_at": {
            "type": "string"
          },
          "status": {
            "$ref": "#/components/schemas/DeliveryAttemptStatus"
          }
        }
      },
      "RequestCancellation": {
        "type": "object",
        "required": [
          "id",
          "status"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "status": {
            "$ref": "#/components/schemas/RequestCancellationStatus"
          }
        }
      },
      "RequestCancellationStatus": {
        "type": "string",
        "enum": [
          "cancellation_requested",
          "cancelled"
        ]
      },
      "RequestDetail": {
        "type": "object",
        "required": [
          "id",
          "url",
          "method",
          "max_attempts",
          "timeout_seconds",
          "queue",
          "metadata",
          "headers",
          "status",
          "created_at",
          "updated_at",
          "attempts"
        ],
        "properties": {
          "attempts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RequestAttemptSummary"
            }
          },
          "cancelled_at": {
            "type": [
              "string",
              "null"
            ]
          },
          "completed_at": {
            "type": [
              "string",
              "null"
            ]
          },
          "content_type": {
            "type": [
              "string",
              "null"
            ]
          },
          "created_at": {
            "type": "string"
          },
          "headers": {
            "$ref": "#/components/schemas/BTreeMap"
          },
          "id": {
            "type": "string"
          },
          "max_attempts": {
            "type": "integer",
            "format": "int32",
            "minimum": 0
          },
          "metadata": {
            "$ref": "#/components/schemas/BTreeMap"
          },
          "method": {
            "type": "string"
          },
          "queue": {
            "type": "string"
          },
          "replayed_from_request_id": {
            "type": [
              "string",
              "null"
            ]
          },
          "schedule_id": {
            "type": [
              "string",
              "null"
            ]
          },
          "scheduled_at": {
            "type": [
              "string",
              "null"
            ]
          },
          "started_at": {
            "type": [
              "string",
              "null"
            ]
          },
          "status": {
            "$ref": "#/components/schemas/RequestStatus"
          },
          "timeout_seconds": {
            "type": "integer",
            "format": "int32",
            "minimum": 0
          },
          "updated_at": {
            "type": "string"
          },
          "url": {
            "type": "string"
          }
        }
      },
      "RequestListPage": {
        "type": "object",
        "required": [
          "items",
          "history_retention_days",
          "history_cutoff_at",
          "has_hidden_history"
        ],
        "properties": {
          "has_hidden_history": {
            "type": "boolean"
          },
          "history_cutoff_at": {
            "type": "string"
          },
          "history_retention_days": {
            "type": "integer",
            "format": "int32",
            "minimum": 0
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RequestSummary"
            }
          },
          "next_cursor": {
            "type": [
              "string",
              "null"
            ]
          }
        }
      },
      "RequestRetryDecision": {
        "type": "object",
        "required": [
          "reason",
          "retry_after_truncated",
          "retry_after_escaped",
          "backoff_delay_ms",
          "selected_delay_ms",
          "delay_source",
          "next_attempt_at"
        ],
        "properties": {
          "backoff_delay_ms": {
            "type": "integer",
            "format": "int64",
            "minimum": 0
          },
          "delay_source": {
            "$ref": "#/components/schemas/RetryDelaySource"
          },
          "next_attempt_at": {
            "type": "string"
          },
          "reason": {
            "$ref": "#/components/schemas/RetryReason"
          },
          "retry_after_delay_ms": {
            "type": [
              "integer",
              "null"
            ],
            "format": "int64",
            "minimum": 0
          },
          "retry_after_escaped": {
            "type": "boolean"
          },
          "retry_after_raw": {
            "type": [
              "string",
              "null"
            ]
          },
          "retry_after_status": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/RetryAfterStatus"
              }
            ]
          },
          "retry_after_truncated": {
            "type": "boolean"
          },
          "selected_delay_ms": {
            "type": "integer",
            "format": "int64",
            "minimum": 0
          }
        }
      },
      "RequestSource": {
        "type": "string",
        "enum": [
          "api",
          "recurring",
          "replay"
        ]
      },
      "RequestStatus": {
        "type": "string",
        "enum": [
          "scheduled",
          "queued",
          "delivering",
          "succeeded",
          "failed",
          "cancelled"
        ]
      },
      "RequestSummary": {
        "type": "object",
        "required": [
          "id",
          "url",
          "method",
          "queue",
          "status",
          "created_at"
        ],
        "properties": {
          "completed_at": {
            "type": [
              "string",
              "null"
            ]
          },
          "created_at": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "method": {
            "type": "string"
          },
          "queue": {
            "type": "string"
          },
          "replayed_from_request_id": {
            "type": [
              "string",
              "null"
            ]
          },
          "schedule_id": {
            "type": [
              "string",
              "null"
            ]
          },
          "scheduled_at": {
            "type": [
              "string",
              "null"
            ]
          },
          "started_at": {
            "type": [
              "string",
              "null"
            ]
          },
          "status": {
            "$ref": "#/components/schemas/RequestStatus"
          },
          "url": {
            "type": "string"
          }
        }
      },
      "RetryAfterStatus": {
        "type": "string",
        "enum": [
          "valid",
          "invalid",
          "capped"
        ]
      },
      "RetryDelaySource": {
        "type": "string",
        "enum": [
          "exponential_backoff",
          "retry_after"
        ]
      },
      "RetryReason": {
        "type": "string",
        "enum": [
          "network_error",
          "http_408",
          "http_429",
          "http_5xx"
        ]
      },
      "ScheduleDetail": {
        "type": "object",
        "required": [
          "id",
          "name",
          "timing",
          "status",
          "request",
          "created_at",
          "updated_at"
        ],
        "properties": {
          "created_at": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "last_run_at": {
            "type": [
              "string",
              "null"
            ]
          },
          "last_run_outcome": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/ScheduleRunOutcome"
              }
            ]
          },
          "name": {
            "type": "string"
          },
          "next_run_at": {
            "type": [
              "string",
              "null"
            ]
          },
          "request": {
            "$ref": "#/components/schemas/ScheduleRequestDefinition"
          },
          "status": {
            "$ref": "#/components/schemas/ScheduleStatus"
          },
          "timing": {
            "$ref": "#/components/schemas/ScheduleTimingDefinition"
          },
          "updated_at": {
            "type": "string"
          }
        }
      },
      "ScheduleRequestDefinition": {
        "type": "object",
        "required": [
          "url",
          "headers",
          "retry"
        ],
        "properties": {
          "body": {},
          "headers": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "propertyNames": {
              "type": "string"
            }
          },
          "retry": {
            "type": "integer",
            "format": "int32",
            "minimum": 0
          },
          "url": {
            "type": "string"
          }
        }
      },
      "ScheduleRequestInput": {
        "type": "object",
        "required": [
          "url"
        ],
        "properties": {
          "body": {
            "description": "Configured JSON body. Omission or null sends no body; non-null bodies are limited to 256 KiB."
          },
          "headers": {
            "type": [
              "object",
              "null"
            ],
            "additionalProperties": {
              "type": "string"
            },
            "propertyNames": {
              "type": "string"
            }
          },
          "retry": {
            "type": [
              "integer",
              "null"
            ],
            "format": "int32",
            "description": "Additional attempts after the initial POST.",
            "default": 0,
            "maximum": 19,
            "minimum": 0
          },
          "url": {
            "type": "string"
          }
        }
      },
      "ScheduleRunOutcome": {
        "type": "string",
        "enum": [
          "enqueued",
          "skipped_usage_limit"
        ]
      },
      "ScheduleStatus": {
        "type": "string",
        "enum": [
          "active",
          "paused"
        ]
      },
      "ScheduleSummary": {
        "type": "object",
        "required": [
          "id",
          "name",
          "timing",
          "status",
          "url",
          "retry",
          "created_at",
          "updated_at"
        ],
        "properties": {
          "created_at": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "last_run_at": {
            "type": [
              "string",
              "null"
            ]
          },
          "last_run_outcome": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/ScheduleRunOutcome"
              }
            ]
          },
          "name": {
            "type": "string"
          },
          "next_run_at": {
            "type": [
              "string",
              "null"
            ]
          },
          "retry": {
            "type": "integer",
            "format": "int32",
            "minimum": 0
          },
          "status": {
            "$ref": "#/components/schemas/ScheduleStatus"
          },
          "timing": {
            "$ref": "#/components/schemas/ScheduleTimingDefinition"
          },
          "updated_at": {
            "type": "string"
          },
          "url": {
            "type": "string"
          }
        }
      },
      "ScheduleTimingDefinition": {
        "oneOf": [
          {
            "type": "object",
            "required": [
              "expression",
              "timezone",
              "type"
            ],
            "properties": {
              "expression": {
                "type": "string"
              },
              "timezone": {
                "type": "string"
              },
              "type": {
                "type": "string",
                "enum": [
                  "cron"
                ]
              }
            }
          },
          {
            "type": "object",
            "required": [
              "every_seconds",
              "starts_at",
              "type"
            ],
            "properties": {
              "every_seconds": {
                "type": "integer",
                "format": "int32",
                "minimum": 0
              },
              "starts_at": {
                "type": "string"
              },
              "type": {
                "type": "string",
                "enum": [
                  "interval"
                ]
              }
            }
          }
        ]
      },
      "ScheduleTimingInput": {
        "oneOf": [
          {
            "type": "object",
            "required": [
              "expression",
              "timezone",
              "type"
            ],
            "properties": {
              "expression": {
                "type": "string"
              },
              "timezone": {
                "type": "string"
              },
              "type": {
                "type": "string",
                "enum": [
                  "cron"
                ]
              }
            }
          },
          {
            "type": "object",
            "required": [
              "every_seconds",
              "type"
            ],
            "properties": {
              "every_seconds": {
                "type": "integer",
                "format": "int32",
                "multipleOf": 60,
                "maximum": 2592000,
                "minimum": 60
              },
              "starts_at": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "Future RFC 3339 timestamp on creation. Omission schedules the first run one interval after creation."
              },
              "type": {
                "type": "string",
                "enum": [
                  "interval"
                ]
              }
            }
          }
        ]
      },
      "UpdateScheduleRequest": {
        "type": "object",
        "properties": {
          "name": {
            "type": [
              "string",
              "null"
            ]
          },
          "request": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/ScheduleRequestInput"
              }
            ]
          },
          "timing": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/ScheduleTimingInput"
              }
            ]
          }
        }
      }
    },
    "securitySchemes": {
      "api_key": {
        "type": "http",
        "scheme": "bearer"
      }
    }
  },
  "tags": [
    {
      "name": "requests",
      "description": "Project-scoped delivery requests and completed attempts"
    },
    {
      "name": "schedules",
      "description": "Project-scoped recurring HTTP POST schedules"
    },
    {
      "name": "delivery-signatures",
      "description": "Public project Ed25519 verification keys; no API key required"
    }
  ]
}