{
  "openapi": "3.1.0",
  "info": {
    "title": "NOTIPOCKET Server API",
    "version": "1.0.0-rc1",
    "description": "NOTIPOCKET notification API. Normal sending does not require recipient IDs in every request: omit `to` and the server targets every active, approved recipient configured for the API key’s notification service. Include `to` only for targeted delivery to a subset of already-approved recipients. HTTP 202 means the message and durable queue work were accepted; it is not proof that a device displayed the notification. Query-route alternative: `/index.php?r=/v1/...`."
  },
  "servers": [
    {
      "url": "https://api.notipocket.com"
    }
  ],
  "paths": {
    "/v1/bootstrap": {
      "get": {
        "summary": "Public service configuration",
        "operationId": "get_bootstrap",
        "security": [],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Success"
                }
              }
            }
          },
          "default": {
            "description": "Request rejected, unavailable configuration, permission or provider error. Never a simulated success.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/v1/locales": {
      "get": {
        "summary": "Translated system strings",
        "operationId": "get_locales",
        "security": [],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Success"
                }
              }
            }
          },
          "default": {
            "description": "Request rejected, unavailable configuration, permission or provider error. Never a simulated success.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/v1/auth/challenge": {
      "post": {
        "summary": "Member authentication: challenge",
        "operationId": "post_auth_challenge",
        "security": [],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Success"
                }
              }
            }
          },
          "default": {
            "description": "Request rejected, unavailable configuration, permission or provider error. Never a simulated success.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true
              }
            }
          }
        }
      }
    },
    "/v1/auth/token": {
      "post": {
        "summary": "Member authentication: token",
        "operationId": "post_auth_token",
        "security": [],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Success"
                }
              }
            }
          },
          "default": {
            "description": "Request rejected, unavailable configuration, permission or provider error. Never a simulated success.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "challenge",
                  "id_token"
                ],
                "additionalProperties": false,
                "properties": {
                  "challenge": {
                    "type": "string"
                  },
                  "id_token": {
                    "type": "string"
                  },
                  "authorization_code": {
                    "type": "string"
                  },
                  "display_name": {
                    "type": "string"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/v1/auth/refresh": {
      "post": {
        "summary": "Member authentication: refresh",
        "operationId": "post_auth_refresh",
        "security": [],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Success"
                }
              }
            }
          },
          "default": {
            "description": "Request rejected, unavailable configuration, permission or provider error. Never a simulated success.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true
              }
            }
          }
        }
      }
    },
    "/v1/messages": {
      "post": {
        "summary": "Send a message to the service recipient list",
        "operationId": "post_messages",
        "security": [
          {
            "ProjectKey": []
          }
        ],
        "responses": {
          "202": {
            "description": "Message and durable recipient/queue records accepted",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MessageSendResponse"
                }
              }
            }
          },
          "400": {
            "description": "Malformed JSON or HTTPS/request requirements not met",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Missing, invalid, expired or revoked project API key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "409": {
            "description": "Idempotency conflict: the same Idempotency-Key was reused with different normalized content",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "413": {
            "description": "Request or body size limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "415": {
            "description": "Unsupported Content-Type",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "422": {
            "description": "Validation or recipient error, including NO_APPROVED_RECIPIENTS, RECIPIENT_NOT_AVAILABLE, INVALID_REQUEST or UNKNOWN_FIELD",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "API-key/project rate limit or project daily recipient quota exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Server dependency/configuration unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 128
            },
            "description": "Recommended. Reuse unchanged for retries of the same business event. Same key + different normalized content returns HTTP 409."
          }
        ],
        "requestBody": {
          "required": true,
          "description": "JSON is recommended. application/x-www-form-urlencoded and multipart/form-data are also accepted by the server; list fields may be comma-separated in form/GET compatibility inputs.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MessageInput"
              },
              "examples": {
                "allApproved": {
                  "summary": "Default: all approved recipients",
                  "value": {
                    "title": "New order",
                    "body": "Order #1001 was received.",
                    "url": "https://example.com/orders/1001",
                    "url_title": "Open order"
                  }
                },
                "targeted": {
                  "summary": "Optional: specific approved recipients",
                  "value": {
                    "to": [
                      "NP-7K3D-9Q2H-8M4X"
                    ],
                    "title": "Private alert",
                    "body": "Only selected approved recipients receive this message.",
                    "allow_partial": false
                  }
                }
              }
            }
          }
        },
        "description": "Recipient behavior: omit `to` to send to every active recipient whose connection to this notification service is `approved`. Include `to` only to target a subset of those approved recipients. `pending`, `denied`, `blocked`, deleted and inactive accounts are not eligible. The recipient set is resolved at first acceptance. Delivery workers recheck consent/account state before push. Use a stable Idempotency-Key for safe retries of the same external event."
      }
    },
    "/v1/messages/validate": {
      "post": {
        "summary": "Validate a message without storing or sending",
        "operationId": "post_messages_validate",
        "security": [
          {
            "ProjectKey": []
          }
        ],
        "responses": {
          "200": {
            "description": "Validation succeeded; nothing was stored or sent",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MessageValidateResponse"
                }
              }
            }
          },
          "400": {
            "description": "Malformed JSON or HTTPS/request requirements not met",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Missing, invalid, expired or revoked project API key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "409": {
            "description": "Idempotency conflict: the same Idempotency-Key was reused with different normalized content",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "413": {
            "description": "Request or body size limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "415": {
            "description": "Unsupported Content-Type",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "422": {
            "description": "Validation or recipient error, including NO_APPROVED_RECIPIENTS, RECIPIENT_NOT_AVAILABLE, INVALID_REQUEST or UNKNOWN_FIELD",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "API-key/project rate limit or project daily recipient quota exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Server dependency/configuration unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 128
            },
            "description": "Ignored for durable deduplication by validate-only requests; it may still be supplied by a shared client."
          }
        ],
        "requestBody": {
          "required": true,
          "description": "JSON is recommended. application/x-www-form-urlencoded and multipart/form-data are also accepted by the server; list fields may be comma-separated in form/GET compatibility inputs.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MessageInput"
              },
              "examples": {
                "allApproved": {
                  "summary": "Default: all approved recipients",
                  "value": {
                    "title": "New order",
                    "body": "Order #1001 was received.",
                    "url": "https://example.com/orders/1001",
                    "url_title": "Open order"
                  }
                },
                "targeted": {
                  "summary": "Optional: specific approved recipients",
                  "value": {
                    "to": [
                      "NP-7K3D-9Q2H-8M4X"
                    ],
                    "title": "Private alert",
                    "body": "Only selected approved recipients receive this message.",
                    "allow_partial": false
                  }
                }
              }
            }
          }
        },
        "description": "Recipient behavior: omit `to` to send to every active recipient whose connection to this notification service is `approved`. Include `to` only to target a subset of those approved recipients. `pending`, `denied`, `blocked`, deleted and inactive accounts are not eligible. The recipient set is resolved at first acceptance. Delivery workers recheck consent/account state before push. This endpoint performs the same recipient/action validation but does not create a message, inbox rows, usage counters or queue jobs."
      }
    },
    "/v1/legacy/notify": {
      "get": {
        "summary": "Explicitly enabled legacy GET sending",
        "operationId": "get_legacy_notify",
        "security": [
          {
            "ProjectKey": []
          }
        ],
        "responses": {
          "202": {
            "description": "Accepted into durable queue",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MessageSendResponse"
                }
              }
            }
          },
          "400": {
            "description": "Malformed JSON or HTTPS/request requirements not met",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Missing, invalid, expired or revoked project API key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "409": {
            "description": "Idempotency conflict: the same Idempotency-Key was reused with different normalized content",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "413": {
            "description": "Request or body size limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "415": {
            "description": "Unsupported Content-Type",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "422": {
            "description": "Validation or recipient error, including NO_APPROVED_RECIPIENTS, RECIPIENT_NOT_AVAILABLE, INVALID_REQUEST or UNKNOWN_FIELD",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "API-key/project rate limit or project daily recipient quota exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Server dependency/configuration unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "description": "Restricted compatibility endpoint for systems that can only call a URL. The project must have legacy GET enabled. A token passed in the `token` query parameter must be a restricted legacy key; a bearer key may be used in the Authorization header. Recipient behavior follows the same model, but a restricted legacy key can only address its configured target set. Omit `to` to address all currently approved recipients inside that allowed target set; provide `to` for a specific approved subset. Prefer POST because URLs may be logged by clients, proxies and web servers.",
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 100
            },
            "description": "Restricted legacy token when Authorization header cannot be used. Never place a standard project key in a URL."
          },
          {
            "name": "request_id",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "maxLength": 128
            },
            "description": "Stable event identifier used as the idempotency key. Reuse it for retries of the same event."
          },
          {
            "name": "title",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "maxLength": 200
            }
          },
          {
            "name": "body",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "UTF-8 message body. Avoid sensitive content in a GET URL."
          },
          {
            "name": "to",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Optional comma-separated Pocket IDs. Omit to use the token’s full currently-approved allowed audience."
          },
          {
            "name": "url",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "uri"
            }
          },
          {
            "name": "require_ack",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "scheduled_at",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "expires_at",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          }
        ]
      }
    },
    "/v1/messages/{message_id}": {
      "get": {
        "summary": "Sender status",
        "operationId": "get_messages_message_id",
        "security": [
          {
            "ProjectKey": []
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Success"
                }
              }
            }
          },
          "default": {
            "description": "Request rejected, unavailable configuration, permission or provider error. Never a simulated success.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "message_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ]
      }
    },
    "/v1/messages/{message_id}/cancel": {
      "post": {
        "summary": "Cancel pending/scheduled delivery",
        "operationId": "post_messages_message_id_cancel",
        "security": [
          {
            "ProjectKey": []
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Success"
                }
              }
            }
          },
          "default": {
            "description": "Request rejected, unavailable configuration, permission or provider error. Never a simulated success.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "message_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true
              }
            }
          }
        }
      }
    },
    "/v1/messages/{message_id}/resend": {
      "post": {
        "summary": "Explicit reminder resend",
        "operationId": "post_messages_message_id_resend",
        "security": [
          {
            "ProjectKey": []
          }
        ],
        "responses": {
          "202": {
            "description": "Accepted into the durable queue",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Success"
                }
              }
            }
          },
          "default": {
            "description": "Request rejected, unavailable configuration, permission or provider error. Never a simulated success.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "message_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "schema": {
              "type": "string",
              "maxLength": 128
            },
            "description": "Reuse unchanged for retries of the same event. Recommended; required for resend."
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true
              }
            }
          }
        }
      }
    },
    "/v1/me": {
      "get": {
        "summary": "Read me",
        "operationId": "get_me",
        "security": [
          {
            "MemberToken": []
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Success"
                }
              }
            }
          },
          "default": {
            "description": "Request rejected, unavailable configuration, permission or provider error. Never a simulated success.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      },
      "post": {
        "summary": "Update or create me",
        "operationId": "post_me",
        "security": [
          {
            "MemberToken": []
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Success"
                }
              }
            }
          },
          "default": {
            "description": "Request rejected, unavailable configuration, permission or provider error. Never a simulated success.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true
              }
            }
          }
        }
      }
    },
    "/v1/devices": {
      "get": {
        "summary": "Read devices",
        "operationId": "get_devices",
        "security": [
          {
            "MemberToken": []
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Success"
                }
              }
            }
          },
          "default": {
            "description": "Request rejected, unavailable configuration, permission or provider error. Never a simulated success.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      },
      "post": {
        "summary": "Update or create devices",
        "operationId": "post_devices",
        "security": [
          {
            "MemberToken": []
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Success"
                }
              }
            }
          },
          "default": {
            "description": "Request rejected, unavailable configuration, permission or provider error. Never a simulated success.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "required": [
                  "platform",
                  "token",
                  "name"
                ],
                "properties": {
                  "platform": {
                    "type": "string",
                    "enum": [
                      "android",
                      "ios"
                    ]
                  },
                  "token": {
                    "type": "string",
                    "description": "FCM registration token. iOS also registers the FCM token, not the raw APNs token.",
                    "maxLength": 4096
                  },
                  "name": {
                    "type": "string",
                    "maxLength": 100
                  },
                  "app_version": {
                    "type": "string",
                    "maxLength": 30
                  },
                  "permission": {
                    "type": "string",
                    "enum": [
                      "authorized",
                      "provisional",
                      "denied",
                      "unknown"
                    ],
                    "default": "unknown"
                  },
                  "push_schema": {
                    "type": "integer",
                    "enum": [
                      1,
                      2
                    ],
                    "description": "Optional Android capability. Omit for deployed Android compatibility (schema 1); send 2 for private generic provider alerts. iOS is forced to schema 2 by the server."
                  }
                }
              }
            }
          }
        }
      }
    },
    "/v1/connections": {
      "get": {
        "summary": "Read connections",
        "operationId": "get_connections",
        "security": [
          {
            "MemberToken": []
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Success"
                }
              }
            }
          },
          "default": {
            "description": "Request rejected, unavailable configuration, permission or provider error. Never a simulated success.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/v1/workspaces": {
      "get": {
        "summary": "Read workspaces",
        "operationId": "get_workspaces",
        "security": [
          {
            "MemberToken": []
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Success"
                }
              }
            }
          },
          "default": {
            "description": "Request rejected, unavailable configuration, permission or provider error. Never a simulated success.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      },
      "post": {
        "summary": "Update or create workspaces",
        "operationId": "post_workspaces",
        "security": [
          {
            "MemberToken": []
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Success"
                }
              }
            }
          },
          "default": {
            "description": "Request rejected, unavailable configuration, permission or provider error. Never a simulated success.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true
              }
            }
          }
        }
      }
    },
    "/v1/projects": {
      "get": {
        "summary": "Read projects",
        "operationId": "get_projects",
        "security": [
          {
            "MemberToken": []
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Success"
                }
              }
            }
          },
          "default": {
            "description": "Request rejected, unavailable configuration, permission or provider error. Never a simulated success.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      },
      "post": {
        "summary": "Update or create projects",
        "operationId": "post_projects",
        "security": [
          {
            "MemberToken": []
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Success"
                }
              }
            }
          },
          "default": {
            "description": "Request rejected, unavailable configuration, permission or provider error. Never a simulated success.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true
              }
            }
          }
        }
      }
    },
    "/v1/inbox": {
      "get": {
        "summary": "Read inbox",
        "operationId": "get_inbox",
        "security": [
          {
            "MemberToken": []
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Success"
                }
              }
            }
          },
          "default": {
            "description": "Request rejected, unavailable configuration, permission or provider error. Never a simulated success.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/v1/inbox/changes": {
      "get": {
        "summary": "Read inbox/changes",
        "operationId": "get_inbox_changes",
        "security": [
          {
            "MemberToken": []
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Success"
                }
              }
            }
          },
          "default": {
            "description": "Request rejected, unavailable configuration, permission or provider error. Never a simulated success.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/v1/inbox/{recipient_id}": {
      "get": {
        "summary": "Read inbox/{recipient_id}",
        "operationId": "get_inbox_recipient_id",
        "security": [
          {
            "MemberToken": []
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Success"
                }
              }
            }
          },
          "default": {
            "description": "Request rejected, unavailable configuration, permission or provider error. Never a simulated success.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "recipient_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ]
      }
    },
    "/v1/me/exports": {
      "get": {
        "summary": "Read me/exports",
        "operationId": "get_me_exports",
        "security": [
          {
            "MemberToken": []
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Success"
                }
              }
            }
          },
          "default": {
            "description": "Request rejected, unavailable configuration, permission or provider error. Never a simulated success.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      },
      "post": {
        "summary": "Update or create me/exports",
        "operationId": "post_me_exports",
        "security": [
          {
            "MemberToken": []
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Success"
                }
              }
            }
          },
          "default": {
            "description": "Request rejected, unavailable configuration, permission or provider error. Never a simulated success.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true
              }
            }
          }
        }
      }
    },
    "/v1/support/products": {
      "get": {
        "summary": "Read support/products",
        "operationId": "get_support_products",
        "security": [
          {
            "MemberToken": []
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Success"
                }
              }
            }
          },
          "default": {
            "description": "Request rejected, unavailable configuration, permission or provider error. Never a simulated success.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/v1/support/history": {
      "get": {
        "summary": "Read support/history",
        "operationId": "get_support_history",
        "security": [
          {
            "MemberToken": []
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Success"
                }
              }
            }
          },
          "default": {
            "description": "Request rejected, unavailable configuration, permission or provider error. Never a simulated success.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/v1/notices": {
      "get": {
        "summary": "Read notices",
        "operationId": "get_notices",
        "security": [
          {
            "MemberToken": []
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Success"
                }
              }
            }
          },
          "default": {
            "description": "Request rejected, unavailable configuration, permission or provider error. Never a simulated success.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/v1/me/pocket/rotate": {
      "post": {
        "summary": "Update or create me/pocket/rotate",
        "operationId": "post_me_pocket_rotate",
        "security": [
          {
            "MemberToken": []
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Success"
                }
              }
            }
          },
          "default": {
            "description": "Request rejected, unavailable configuration, permission or provider error. Never a simulated success.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true
              }
            }
          }
        }
      }
    },
    "/v1/auth/logout": {
      "post": {
        "summary": "Update or create auth/logout",
        "operationId": "post_auth_logout",
        "security": [
          {
            "MemberToken": []
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Success"
                }
              }
            }
          },
          "default": {
            "description": "Request rejected, unavailable configuration, permission or provider error. Never a simulated success.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true
              }
            }
          }
        }
      }
    },
    "/v1/me/delete": {
      "post": {
        "summary": "Update or create me/delete",
        "operationId": "post_me_delete",
        "security": [
          {
            "MemberToken": []
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Success"
                }
              }
            }
          },
          "default": {
            "description": "Request rejected, unavailable configuration, permission or provider error. Never a simulated success.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true
              }
            }
          }
        }
      }
    },
    "/v1/contact": {
      "post": {
        "summary": "Update or create contact",
        "operationId": "post_contact",
        "security": [
          {
            "MemberToken": []
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Success"
                }
              }
            }
          },
          "default": {
            "description": "Request rejected, unavailable configuration, permission or provider error. Never a simulated success.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true
              }
            }
          }
        }
      }
    },
    "/v1/connections/{connection_id}": {
      "post": {
        "summary": "Update or create connections/{connection_id}",
        "operationId": "post_connections_connection_id",
        "security": [
          {
            "MemberToken": []
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Success"
                }
              }
            }
          },
          "default": {
            "description": "Request rejected, unavailable configuration, permission or provider error. Never a simulated success.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "connection_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true
              }
            }
          }
        }
      }
    },
    "/v1/workspaces/{workspace_id}/invite": {
      "post": {
        "summary": "Update or create workspaces/{workspace_id}/invite",
        "operationId": "post_workspaces_workspace_id_invite",
        "security": [
          {
            "MemberToken": []
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Success"
                }
              }
            }
          },
          "default": {
            "description": "Request rejected, unavailable configuration, permission or provider error. Never a simulated success.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "workspace_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true
              }
            }
          }
        }
      }
    },
    "/v1/workspaces/{workspace_id}/reply": {
      "post": {
        "summary": "Update or create workspaces/{workspace_id}/reply",
        "operationId": "post_workspaces_workspace_id_reply",
        "security": [
          {
            "MemberToken": []
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Success"
                }
              }
            }
          },
          "default": {
            "description": "Request rejected, unavailable configuration, permission or provider error. Never a simulated success.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "workspace_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true
              }
            }
          }
        }
      }
    },
    "/v1/support/purchases/verify": {
      "post": {
        "summary": "Update or create support/purchases/verify",
        "operationId": "post_support_purchases_verify",
        "security": [
          {
            "MemberToken": []
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Success"
                }
              }
            }
          },
          "default": {
            "description": "Request rejected, unavailable configuration, permission or provider error. Never a simulated success.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true
              }
            }
          }
        }
      }
    },
    "/v1/devices/{device_id}": {
      "delete": {
        "summary": "Remove devices/{device_id}",
        "operationId": "delete_devices_device_id",
        "security": [
          {
            "MemberToken": []
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Success"
                }
              }
            }
          },
          "default": {
            "description": "Request rejected, unavailable configuration, permission or provider error. Never a simulated success.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "device_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true
              }
            }
          }
        }
      }
    },
    "/v1/me/identities/{provider}": {
      "delete": {
        "summary": "Remove me/identities/{provider}",
        "operationId": "delete_me_identities_provider",
        "security": [
          {
            "MemberToken": []
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Success"
                }
              }
            }
          },
          "default": {
            "description": "Request rejected, unavailable configuration, permission or provider error. Never a simulated success.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "provider",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true
              }
            }
          }
        }
      }
    },
    "/v1/inbox/{recipient_id}/read": {
      "post": {
        "summary": "Inbox action: read",
        "operationId": "post_inbox_recipient_id_read",
        "security": [
          {
            "MemberToken": []
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Success"
                }
              }
            }
          },
          "default": {
            "description": "Request rejected, unavailable configuration, permission or provider error. Never a simulated success.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "recipient_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true
              }
            }
          }
        }
      }
    },
    "/v1/inbox/{recipient_id}/received": {
      "post": {
        "summary": "Inbox action: received",
        "operationId": "post_inbox_recipient_id_received",
        "security": [
          {
            "MemberToken": []
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Success"
                }
              }
            }
          },
          "default": {
            "description": "Request rejected, unavailable configuration, permission or provider error. Never a simulated success.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "recipient_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true
              }
            }
          }
        }
      }
    },
    "/v1/inbox/{recipient_id}/ack": {
      "post": {
        "summary": "Inbox action: ack",
        "operationId": "post_inbox_recipient_id_ack",
        "security": [
          {
            "MemberToken": []
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Success"
                }
              }
            }
          },
          "default": {
            "description": "Request rejected, unavailable configuration, permission or provider error. Never a simulated success.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "recipient_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true
              }
            }
          }
        }
      }
    },
    "/v1/inbox/{recipient_id}/claim": {
      "post": {
        "summary": "Inbox action: claim",
        "operationId": "post_inbox_recipient_id_claim",
        "security": [
          {
            "MemberToken": []
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Success"
                }
              }
            }
          },
          "default": {
            "description": "Request rejected, unavailable configuration, permission or provider error. Never a simulated success.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "recipient_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true
              }
            }
          }
        }
      }
    },
    "/v1/inbox/{recipient_id}/complete": {
      "post": {
        "summary": "Inbox action: complete",
        "operationId": "post_inbox_recipient_id_complete",
        "security": [
          {
            "MemberToken": []
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Success"
                }
              }
            }
          },
          "default": {
            "description": "Request rejected, unavailable configuration, permission or provider error. Never a simulated success.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "recipient_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true
              }
            }
          }
        }
      }
    },
    "/v1/inbox/{recipient_id}/snooze": {
      "post": {
        "summary": "Inbox action: snooze",
        "operationId": "post_inbox_recipient_id_snooze",
        "security": [
          {
            "MemberToken": []
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Success"
                }
              }
            }
          },
          "default": {
            "description": "Request rejected, unavailable configuration, permission or provider error. Never a simulated success.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "recipient_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true
              }
            }
          }
        }
      }
    },
    "/v1/inbox/{recipient_id}/star": {
      "post": {
        "summary": "Inbox action: star",
        "operationId": "post_inbox_recipient_id_star",
        "security": [
          {
            "MemberToken": []
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Success"
                }
              }
            }
          },
          "default": {
            "description": "Request rejected, unavailable configuration, permission or provider error. Never a simulated success.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "recipient_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true
              }
            }
          }
        }
      }
    },
    "/v1/inbox/{recipient_id}/archive": {
      "post": {
        "summary": "Inbox action: archive",
        "operationId": "post_inbox_recipient_id_archive",
        "security": [
          {
            "MemberToken": []
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Success"
                }
              }
            }
          },
          "default": {
            "description": "Request rejected, unavailable configuration, permission or provider error. Never a simulated success.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "recipient_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true
              }
            }
          }
        }
      }
    },
    "/v1/inbox/{recipient_id}/delete": {
      "post": {
        "summary": "Inbox action: delete",
        "operationId": "post_inbox_recipient_id_delete",
        "security": [
          {
            "MemberToken": []
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Success"
                }
              }
            }
          },
          "default": {
            "description": "Request rejected, unavailable configuration, permission or provider error. Never a simulated success.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "recipient_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true
              }
            }
          }
        }
      }
    },
    "/v1/inbox/{recipient_id}/report": {
      "post": {
        "summary": "Inbox action: report",
        "operationId": "post_inbox_recipient_id_report",
        "security": [
          {
            "MemberToken": []
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Success"
                }
              }
            }
          },
          "default": {
            "description": "Request rejected, unavailable configuration, permission or provider error. Never a simulated success.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "recipient_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true
              }
            }
          }
        }
      }
    },
    "/v1/inbox/{recipient_id}/actions/{action_id}": {
      "post": {
        "summary": "Run or record an explicit user action",
        "operationId": "post_inbox_recipient_id_actions_action_id",
        "security": [
          {
            "MemberToken": []
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Success"
                }
              }
            }
          },
          "default": {
            "description": "Request rejected, unavailable configuration, permission or provider error. Never a simulated success.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "recipient_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "action_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true
              }
            }
          }
        }
      }
    },
    "/v1/projects/{project_id}": {
      "get": {
        "summary": "Project detail",
        "operationId": "get_projects_project_id",
        "security": [
          {
            "MemberToken": []
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Success"
                }
              }
            }
          },
          "default": {
            "description": "Request rejected, unavailable configuration, permission or provider error. Never a simulated success.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "project_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ]
      },
      "post": {
        "summary": "Project update",
        "operationId": "post_projects_project_id",
        "security": [
          {
            "MemberToken": []
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Success"
                }
              }
            }
          },
          "default": {
            "description": "Request rejected, unavailable configuration, permission or provider error. Never a simulated success.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "project_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true
              }
            }
          }
        }
      }
    },
    "/v1/projects/{project_id}/channels": {
      "get": {
        "summary": "Project channels",
        "operationId": "get_projects_project_id_channels",
        "security": [
          {
            "MemberToken": []
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Success"
                }
              }
            }
          },
          "default": {
            "description": "Request rejected, unavailable configuration, permission or provider error. Never a simulated success.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "project_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ]
      },
      "post": {
        "summary": "Project channels",
        "operationId": "post_projects_project_id_channels",
        "security": [
          {
            "MemberToken": []
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Success"
                }
              }
            }
          },
          "default": {
            "description": "Request rejected, unavailable configuration, permission or provider error. Never a simulated success.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "project_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true
              }
            }
          }
        }
      }
    },
    "/v1/projects/{project_id}/history": {
      "get": {
        "summary": "Project history",
        "operationId": "get_projects_project_id_history",
        "security": [
          {
            "MemberToken": []
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Success"
                }
              }
            }
          },
          "default": {
            "description": "Request rejected, unavailable configuration, permission or provider error. Never a simulated success.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "project_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ]
      }
    },
    "/v1/projects/{project_id}/usage": {
      "get": {
        "summary": "Project usage",
        "operationId": "get_projects_project_id_usage",
        "security": [
          {
            "MemberToken": []
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Success"
                }
              }
            }
          },
          "default": {
            "description": "Request rejected, unavailable configuration, permission or provider error. Never a simulated success.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "project_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ]
      }
    },
    "/v1/projects/{project_id}/messages/{message_id}": {
      "get": {
        "summary": "Project messages/{message_id}",
        "operationId": "get_projects_project_id_messages_message_id",
        "security": [
          {
            "MemberToken": []
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Success"
                }
              }
            }
          },
          "default": {
            "description": "Request rejected, unavailable configuration, permission or provider error. Never a simulated success.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "project_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "message_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ]
      }
    },
    "/v1/projects/{project_id}/connections": {
      "post": {
        "summary": "Project connections",
        "operationId": "post_projects_project_id_connections",
        "security": [
          {
            "MemberToken": []
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Success"
                }
              }
            }
          },
          "default": {
            "description": "Request rejected, unavailable configuration, permission or provider error. Never a simulated success.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "project_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true
              }
            }
          }
        }
      }
    },
    "/v1/projects/{project_id}/keys": {
      "post": {
        "summary": "Project keys",
        "operationId": "post_projects_project_id_keys",
        "security": [
          {
            "MemberToken": []
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Success"
                }
              }
            }
          },
          "default": {
            "description": "Request rejected, unavailable configuration, permission or provider error. Never a simulated success.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "project_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true
              }
            }
          }
        }
      }
    },
    "/v1/projects/{project_id}/keys/{key_id}/revoke": {
      "post": {
        "summary": "Project keys/{key_id}/revoke",
        "operationId": "post_projects_project_id_keys_key_id_revoke",
        "security": [
          {
            "MemberToken": []
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Success"
                }
              }
            }
          },
          "default": {
            "description": "Request rejected, unavailable configuration, permission or provider error. Never a simulated success.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "project_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "key_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true
              }
            }
          }
        }
      }
    },
    "/v1/projects/{project_id}/rules": {
      "post": {
        "summary": "Project rules",
        "operationId": "post_projects_project_id_rules",
        "security": [
          {
            "MemberToken": []
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Success"
                }
              }
            }
          },
          "default": {
            "description": "Request rejected, unavailable configuration, permission or provider error. Never a simulated success.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "project_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true
              }
            }
          }
        }
      }
    },
    "/v1/projects/{project_id}/endpoints": {
      "post": {
        "summary": "Project endpoints",
        "operationId": "post_projects_project_id_endpoints",
        "security": [
          {
            "MemberToken": []
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Success"
                }
              }
            }
          },
          "default": {
            "description": "Request rejected, unavailable configuration, permission or provider error. Never a simulated success.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "project_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true
              }
            }
          }
        }
      }
    },
    "/v1/projects/{project_id}/endpoints/{endpoint_id}/verify": {
      "post": {
        "summary": "Project endpoints/{endpoint_id}/verify",
        "operationId": "post_projects_project_id_endpoints_endpoint_id_verify",
        "security": [
          {
            "MemberToken": []
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Success"
                }
              }
            }
          },
          "default": {
            "description": "Request rejected, unavailable configuration, permission or provider error. Never a simulated success.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "project_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "endpoint_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true
              }
            }
          }
        }
      }
    },
    "/v1/projects/{project_id}/templates": {
      "post": {
        "summary": "Project templates",
        "operationId": "post_projects_project_id_templates",
        "security": [
          {
            "MemberToken": []
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Success"
                }
              }
            }
          },
          "default": {
            "description": "Request rejected, unavailable configuration, permission or provider error. Never a simulated success.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "project_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true
              }
            }
          }
        }
      }
    },
    "/v1/projects/{project_id}/messages": {
      "post": {
        "summary": "Send a message to the service recipient list",
        "operationId": "post_projects_project_id_messages",
        "security": [
          {
            "MemberToken": []
          }
        ],
        "responses": {
          "202": {
            "description": "Message and durable recipient/queue records accepted",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MessageSendResponse"
                }
              }
            }
          },
          "400": {
            "description": "Malformed JSON or HTTPS/request requirements not met",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Missing, invalid, expired or revoked project API key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "409": {
            "description": "Idempotency conflict: the same Idempotency-Key was reused with different normalized content",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "413": {
            "description": "Request or body size limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "415": {
            "description": "Unsupported Content-Type",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "422": {
            "description": "Validation or recipient error, including NO_APPROVED_RECIPIENTS, RECIPIENT_NOT_AVAILABLE, INVALID_REQUEST or UNKNOWN_FIELD",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "API-key/project rate limit or project daily recipient quota exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Server dependency/configuration unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 128
            },
            "description": "Recommended. Reuse unchanged for retries of the same business event. Same key + different normalized content returns HTTP 409."
          }
        ],
        "requestBody": {
          "required": true,
          "description": "JSON is recommended. application/x-www-form-urlencoded and multipart/form-data are also accepted by the server; list fields may be comma-separated in form/GET compatibility inputs.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MessageInput"
              },
              "examples": {
                "allApproved": {
                  "summary": "Default: all approved recipients",
                  "value": {
                    "title": "New order",
                    "body": "Order #1001 was received.",
                    "url": "https://example.com/orders/1001",
                    "url_title": "Open order"
                  }
                },
                "targeted": {
                  "summary": "Optional: specific approved recipients",
                  "value": {
                    "to": [
                      "NP-7K3D-9Q2H-8M4X"
                    ],
                    "title": "Private alert",
                    "body": "Only selected approved recipients receive this message.",
                    "allow_partial": false
                  }
                }
              }
            }
          }
        },
        "description": "Recipient behavior: omit `to` to send to every active recipient whose connection to this notification service is `approved`. Include `to` only to target a subset of those approved recipients. `pending`, `denied`, `blocked`, deleted and inactive accounts are not eligible. The recipient set is resolved at first acceptance. Delivery workers recheck consent/account state before push. Use a stable Idempotency-Key for safe retries of the same external event."
      }
    },
    "/v1/projects/{project_id}/messages/validate": {
      "post": {
        "summary": "Validate a message without storing or sending",
        "operationId": "post_projects_project_id_messages_validate",
        "security": [
          {
            "MemberToken": []
          }
        ],
        "responses": {
          "200": {
            "description": "Validation succeeded; nothing was stored or sent",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MessageValidateResponse"
                }
              }
            }
          },
          "400": {
            "description": "Malformed JSON or HTTPS/request requirements not met",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Missing, invalid, expired or revoked project API key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "409": {
            "description": "Idempotency conflict: the same Idempotency-Key was reused with different normalized content",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "413": {
            "description": "Request or body size limit exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "415": {
            "description": "Unsupported Content-Type",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "422": {
            "description": "Validation or recipient error, including NO_APPROVED_RECIPIENTS, RECIPIENT_NOT_AVAILABLE, INVALID_REQUEST or UNKNOWN_FIELD",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "API-key/project rate limit or project daily recipient quota exceeded",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Server dependency/configuration unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 128
            },
            "description": "Ignored for durable deduplication by validate-only requests; it may still be supplied by a shared client."
          }
        ],
        "requestBody": {
          "required": true,
          "description": "JSON is recommended. application/x-www-form-urlencoded and multipart/form-data are also accepted by the server; list fields may be comma-separated in form/GET compatibility inputs.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MessageInput"
              },
              "examples": {
                "allApproved": {
                  "summary": "Default: all approved recipients",
                  "value": {
                    "title": "New order",
                    "body": "Order #1001 was received.",
                    "url": "https://example.com/orders/1001",
                    "url_title": "Open order"
                  }
                },
                "targeted": {
                  "summary": "Optional: specific approved recipients",
                  "value": {
                    "to": [
                      "NP-7K3D-9Q2H-8M4X"
                    ],
                    "title": "Private alert",
                    "body": "Only selected approved recipients receive this message.",
                    "allow_partial": false
                  }
                }
              }
            }
          }
        },
        "description": "Recipient behavior: omit `to` to send to every active recipient whose connection to this notification service is `approved`. Include `to` only to target a subset of those approved recipients. `pending`, `denied`, `blocked`, deleted and inactive accounts are not eligible. The recipient set is resolved at first acceptance. Delivery workers recheck consent/account state before push. This endpoint performs the same recipient/action validation but does not create a message, inbox rows, usage counters or queue jobs."
      }
    },
    "/v1/projects/{project_id}/messages/{message_id}/cancel": {
      "post": {
        "summary": "Project messages/{message_id}/cancel",
        "operationId": "post_projects_project_id_messages_message_id_cancel",
        "security": [
          {
            "MemberToken": []
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Success"
                }
              }
            }
          },
          "default": {
            "description": "Request rejected, unavailable configuration, permission or provider error. Never a simulated success.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "project_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "message_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true
              }
            }
          }
        }
      }
    },
    "/v1/projects/{project_id}/messages/{message_id}/resend": {
      "post": {
        "summary": "Project messages/{message_id}/resend",
        "operationId": "post_projects_project_id_messages_message_id_resend",
        "security": [
          {
            "MemberToken": []
          }
        ],
        "responses": {
          "202": {
            "description": "Accepted into the durable queue",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Success"
                }
              }
            }
          },
          "default": {
            "description": "Request rejected, unavailable configuration, permission or provider error. Never a simulated success.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "project_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "message_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "schema": {
              "type": "string",
              "maxLength": 128
            },
            "description": "Reuse unchanged for retries of the same event. Recommended; required for resend."
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true
              }
            }
          }
        }
      }
    },
    "/v1/projects/{project_id}/rules/{rule_id}": {
      "delete": {
        "summary": "Disable or remove rules/{rule_id}",
        "operationId": "delete_projects_project_id_rules_rule_id",
        "security": [
          {
            "MemberToken": []
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Success"
                }
              }
            }
          },
          "default": {
            "description": "Request rejected, unavailable configuration, permission or provider error. Never a simulated success.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "project_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "rule_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true
              }
            }
          }
        }
      }
    },
    "/v1/projects/{project_id}/endpoints/{endpoint_id}": {
      "delete": {
        "summary": "Disable or remove endpoints/{endpoint_id}",
        "operationId": "delete_projects_project_id_endpoints_endpoint_id",
        "security": [
          {
            "MemberToken": []
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Success"
                }
              }
            }
          },
          "default": {
            "description": "Request rejected, unavailable configuration, permission or provider error. Never a simulated success.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "project_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "endpoint_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true
              }
            }
          }
        }
      }
    },
    "/v1/projects/{project_id}/templates/{template_id}": {
      "delete": {
        "summary": "Disable or remove templates/{template_id}",
        "operationId": "delete_projects_project_id_templates_template_id",
        "security": [
          {
            "MemberToken": []
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Success"
                }
              }
            }
          },
          "default": {
            "description": "Request rejected, unavailable configuration, permission or provider error. Never a simulated success.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "project_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "template_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true
              }
            }
          }
        }
      }
    },
    "/v1/store/apple/notifications": {
      "post": {
        "summary": "Apple signed server notification",
        "operationId": "post_store_apple_notifications",
        "security": [],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Success"
                }
              }
            }
          },
          "default": {
            "description": "Request rejected, unavailable configuration, permission or provider error. Never a simulated success.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "description": "Not an anonymous write endpoint. Apple JWS / Google OIDC PubSub / registered endpoint HMAC is mandatory, depending on route.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true
              }
            }
          }
        }
      }
    },
    "/v1/store/google/notifications": {
      "post": {
        "summary": "Authenticated Google Pub/Sub notification",
        "operationId": "post_store_google_notifications",
        "security": [],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Success"
                }
              }
            }
          },
          "default": {
            "description": "Request rejected, unavailable configuration, permission or provider error. Never a simulated success.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "description": "Not an anonymous write endpoint. Apple JWS / Google OIDC PubSub / registered endpoint HMAC is mandatory, depending on route.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true
              }
            }
          }
        }
      }
    },
    "/v1/callbacks/result": {
      "post": {
        "summary": "HMAC-signed external work result",
        "operationId": "post_callbacks_result",
        "security": [],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Success"
                }
              }
            }
          },
          "default": {
            "description": "Request rejected, unavailable configuration, permission or provider error. Never a simulated success.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "description": "Not an anonymous write endpoint. Apple JWS / Google OIDC PubSub / registered endpoint HMAC is mandatory, depending on route.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true
              }
            }
          }
        }
      }
    },
    "/v1/inbox/{recipient_id}/unstar": {
      "post": {
        "summary": "Inbox action: unstar",
        "operationId": "post_inbox_recipient_id_unstar",
        "security": [
          {
            "MemberToken": []
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Success"
                }
              }
            }
          },
          "default": {
            "description": "Request rejected, unavailable configuration, permission or provider error. Never a simulated success.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "recipient_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true
              }
            }
          }
        }
      }
    },
    "/v1/inbox/{recipient_id}/unarchive": {
      "post": {
        "summary": "Inbox action: unarchive",
        "operationId": "post_inbox_recipient_id_unarchive",
        "security": [
          {
            "MemberToken": []
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Success"
                }
              }
            }
          },
          "default": {
            "description": "Request rejected, unavailable configuration, permission or provider error. Never a simulated success.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "recipient_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true
              }
            }
          }
        }
      }
    },
    "/v1/inbox/{recipient_id}/release": {
      "post": {
        "summary": "Inbox action: release",
        "operationId": "post_inbox_recipient_id_release",
        "security": [
          {
            "MemberToken": []
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Success"
                }
              }
            }
          },
          "default": {
            "description": "Request rejected, unavailable configuration, permission or provider error. Never a simulated success.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "recipient_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "securitySchemes": {
      "MemberToken": {
        "type": "http",
        "scheme": "bearer",
        "description": "Short-lived member access token"
      },
      "ProjectKey": {
        "type": "http",
        "scheme": "bearer",
        "description": "Project-scoped sender key; not a member token"
      }
    },
    "schemas": {
      "MessageInput": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "title",
          "body"
        ],
        "description": "Message request. Recipient rule: omit `to` for the normal all-approved audience. If `to` is present, delivery is targeted to that explicit subset and every Pocket ID must already be approved for the service. An explicit empty `to` array is invalid and is never treated as send-to-all.",
        "properties": {
          "to": {
            "type": "array",
            "minItems": 1,
            "maxItems": 100,
            "uniqueItems": true,
            "description": "Optional targeted-recipient override. Omit this field entirely to send to every active approved recipient of the service.",
            "items": {
              "type": "string",
              "description": "Approved NOTIPOCKET Pocket ID, e.g. NP-7K3D-9Q2H-8M4X."
            }
          },
          "title": {
            "type": "string",
            "minLength": 1,
            "maxLength": 200,
            "description": "Notification title."
          },
          "body": {
            "type": "string",
            "minLength": 1,
            "description": "Notification body. UTF-8 encoded size must not exceed 16384 bytes."
          },
          "channel": {
            "type": "string",
            "default": "default",
            "maxLength": 60,
            "description": "Existing channel code for the service. Defaults to `default`."
          },
          "url": {
            "type": "string",
            "format": "uri",
            "description": "Optional primary URL action. HTTPS is required unless the project explicitly permits HTTP."
          },
          "url_title": {
            "type": "string",
            "maxLength": 60,
            "description": "Optional label for the primary URL action."
          },
          "actions": {
            "type": "array",
            "maxItems": 6,
            "description": "Optional structured content actions. The primary `url` is normalized into this action set and duplicate URLs are removed.",
            "items": {
              "$ref": "#/components/schemas/Action"
            }
          },
          "priority": {
            "type": "string",
            "enum": [
              "normal",
              "high",
              "low"
            ],
            "default": "normal"
          },
          "require_ack": {
            "type": "boolean",
            "default": false,
            "description": "Whether recipients must explicitly acknowledge the message."
          },
          "ack_policy": {
            "type": "string",
            "enum": [
              "any",
              "all"
            ],
            "default": "any",
            "description": "For shared processing: `any` is satisfied by one acknowledgement; `all` requires every recipient."
          },
          "scheduled_at": {
            "type": "string",
            "format": "date-time",
            "description": "Optional RFC 3339 timestamp with timezone. Must be no more than 30 days in the future and not materially in the past."
          },
          "expires_at": {
            "type": "string",
            "format": "date-time",
            "description": "Optional RFC 3339 timestamp with timezone. Must be after effective send time and within 28 days of scheduled_at."
          },
          "external_id": {
            "type": "string",
            "maxLength": 200,
            "description": "Optional business reference. It is not the idempotency key."
          },
          "thread_key": {
            "type": "string",
            "maxLength": 200,
            "description": "Optional key used to group repeated occurrences of the same incident/thread."
          },
          "allow_partial": {
            "type": "boolean",
            "default": false,
            "description": "Applies only when `to` is present. If false, any unavailable targeted recipient rejects the whole request. If true, available targeted recipients are accepted and unavailable ones are counted in excluded_recipients."
          },
          "data": {
            "type": "object",
            "additionalProperties": true,
            "description": "Optional application metadata. Canonical JSON representation must not exceed 4096 bytes."
          }
        },
        "examples": [
          {
            "title": "New order",
            "body": "Order #1001 was received.",
            "url": "https://example.com/orders/1001",
            "url_title": "Open order"
          },
          {
            "to": [
              "NP-7K3D-9Q2H-8M4X"
            ],
            "title": "Private alert",
            "body": "Only this approved recipient receives the message."
          }
        ]
      },
      "Action": {
        "type": "object",
        "required": [
          "type"
        ],
        "properties": {
          "id": {
            "type": "string",
            "maxLength": 40,
            "description": "Optional stable action key. If omitted, the server assigns action_1, action_2, ..."
          },
          "label": {
            "type": "string",
            "maxLength": 60,
            "description": "Optional user-visible button label."
          },
          "type": {
            "type": "string",
            "enum": [
              "url",
              "phone",
              "sms",
              "email",
              "map",
              "copy",
              "share",
              "calendar",
              "contact",
              "app_link",
              "callback"
            ]
          },
          "url": {
            "type": "string"
          },
          "fallback_url": {
            "type": "string"
          },
          "phone": {
            "type": "string",
            "description": "E.164 international number such as +12025550147."
          },
          "body": {
            "type": "string"
          },
          "email": {
            "type": "string"
          },
          "subject": {
            "type": "string",
            "maxLength": 200
          },
          "address": {
            "type": "string",
            "maxLength": 500
          },
          "latitude": {
            "type": "number",
            "minimum": -90,
            "maximum": 90
          },
          "longitude": {
            "type": "number",
            "minimum": -180,
            "maximum": 180
          },
          "text": {
            "type": "string",
            "maxLength": 4000
          },
          "title": {
            "type": "string",
            "maxLength": 200
          },
          "start_at": {
            "type": "string",
            "format": "date-time"
          },
          "end_at": {
            "type": "string",
            "format": "date-time"
          },
          "location": {
            "type": "string"
          },
          "notes": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "template_id": {
            "type": "string",
            "pattern": "^[a-f0-9]{32}$",
            "description": "Verified callback action template public ID belonging to the same service."
          },
          "data": {
            "type": "object",
            "additionalProperties": true
          }
        },
        "additionalProperties": false,
        "description": "One user-visible content action. `id` must be unique within the message. Unknown fields are rejected. The maximum number of normalized content actions is 6."
      },
      "Success": {
        "type": "object",
        "required": [
          "success",
          "data",
          "request_id"
        ],
        "properties": {
          "success": {
            "const": true
          },
          "data": {},
          "request_id": {
            "type": "string"
          }
        }
      },
      "Error": {
        "type": "object",
        "required": [
          "success",
          "error",
          "request_id"
        ],
        "properties": {
          "success": {
            "const": false
          },
          "error": {
            "type": "object",
            "required": [
              "code",
              "message",
              "details"
            ],
            "properties": {
              "code": {
                "type": "string",
                "description": "Stable machine-readable error code."
              },
              "message": {
                "type": "string",
                "description": "Localized human-readable message."
              },
              "details": {
                "description": "Optional structured details such as the invalid field."
              }
            }
          },
          "request_id": {
            "type": "string",
            "description": "Correlation identifier for server diagnostics."
          }
        }
      },
      "MessageSendData": {
        "type": "object",
        "required": [
          "message_id",
          "status",
          "audience",
          "accepted_recipients",
          "excluded_recipients",
          "duplicate"
        ],
        "properties": {
          "message_id": {
            "type": "string",
            "pattern": "^[a-f0-9]{32}$"
          },
          "status": {
            "type": "string",
            "const": "queued"
          },
          "audience": {
            "type": "string",
            "enum": [
              "all_approved",
              "targeted"
            ],
            "description": "`all_approved` when `to` was omitted; `targeted` when `to` was supplied."
          },
          "accepted_recipients": {
            "type": "integer",
            "minimum": 1,
            "description": "Number of durable recipient rows created for this message."
          },
          "excluded_recipients": {
            "type": "integer",
            "minimum": 0,
            "description": "Unavailable explicit targets skipped only in targeted partial mode."
          },
          "duplicate": {
            "type": "boolean",
            "description": "True when the same Idempotency-Key and normalized request returned an earlier accepted result."
          },
          "idempotency_expires_at": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time",
            "description": "Expiry of the server-side idempotency record when an Idempotency-Key was supplied."
          }
        }
      },
      "MessageSendResponse": {
        "type": "object",
        "required": [
          "success",
          "data",
          "request_id"
        ],
        "properties": {
          "success": {
            "const": true
          },
          "data": {
            "$ref": "#/components/schemas/MessageSendData"
          },
          "request_id": {
            "type": "string"
          }
        }
      },
      "MessageValidateData": {
        "type": "object",
        "required": [
          "valid",
          "audience",
          "accepted_recipients",
          "excluded_recipients",
          "actions"
        ],
        "properties": {
          "valid": {
            "const": true
          },
          "audience": {
            "type": "string",
            "enum": [
              "all_approved",
              "targeted"
            ]
          },
          "accepted_recipients": {
            "type": "integer",
            "minimum": 1
          },
          "excluded_recipients": {
            "type": "integer",
            "minimum": 0
          },
          "actions": {
            "type": "integer",
            "minimum": 0,
            "maximum": 6
          }
        }
      },
      "MessageValidateResponse": {
        "type": "object",
        "required": [
          "success",
          "data",
          "request_id"
        ],
        "properties": {
          "success": {
            "const": true
          },
          "data": {
            "$ref": "#/components/schemas/MessageValidateData"
          },
          "request_id": {
            "type": "string"
          }
        }
      }
    }
  }
}
